{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "03cfad48",
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6bced1d6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import gc\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import re\n",
    "import time\n",
    "from scipy import stats\n",
    "import matplotlib.pyplot as plt\n",
    "import category_encoders as ce\n",
    "import networkx as nx\n",
    "import pickle\n",
    "import lightgbm as lgb\n",
    "import catboost as cat\n",
    "import xgboost as xgb\n",
    "from datetime import timedelta\n",
    "from gensim.models import Word2Vec\n",
    "from io import StringIO\n",
    "from tqdm import tqdm\n",
    "from lightgbm import LGBMClassifier\n",
    "from lightgbm import log_evaluation, early_stopping\n",
    "from sklearn.metrics import roc_curve\n",
    "from scipy.stats import chi2_contingency, pearsonr\n",
    "from sklearn.preprocessing import StandardScaler, OneHotEncoder, LabelEncoder\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer\n",
    "from sklearn.feature_extraction import FeatureHasher\n",
    "from sklearn.model_selection import StratifiedKFold, KFold, train_test_split, GridSearchCV\n",
    "from category_encoders import TargetEncoder\n",
    "from sklearn.decomposition import TruncatedSVD\n",
    "from autogluon.tabular import TabularDataset, TabularPredictor, FeatureMetadata\n",
    "from autogluon.features.generators import AsTypeFeatureGenerator, BulkFeatureGenerator, DropUniqueFeatureGenerator, FillNaFeatureGenerator, PipelineFeatureGenerator\n",
    "from autogluon.features.generators import CategoryFeatureGenerator, IdentityFeatureGenerator, AutoMLPipelineFeatureGenerator\n",
    "from autogluon.common.features.types import R_INT, R_FLOAT\n",
    "from autogluon.core.metrics import make_scorer"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bea57eb3",
   "metadata": {},
   "source": [
    "# 数据加载"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05dad718",
   "metadata": {},
   "source": [
    "## 目标客户加载"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c19f3208",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DATA_DAT</th>\n",
       "      <th>CUST_NO</th>\n",
       "      <th>FLAG</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20250731</td>\n",
       "      <td>13ef4241a1959ccbcf8d8a30f0ed9d50</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20250731</td>\n",
       "      <td>029dede087234ee034590abefc4731a9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20250731</td>\n",
       "      <td>929838a9271aa18da0ad8cb5154ce591</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20250731</td>\n",
       "      <td>51b04b6d47643e0f5303c38a429557d5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20250731</td>\n",
       "      <td>a54db8a4f36e43e9390cf3e43d45f308</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   DATA_DAT                           CUST_NO  FLAG\n",
       "0  20250731  13ef4241a1959ccbcf8d8a30f0ed9d50     9\n",
       "1  20250731  029dede087234ee034590abefc4731a9     9\n",
       "2  20250731  929838a9271aa18da0ad8cb5154ce591     4\n",
       "3  20250731  51b04b6d47643e0f5303c38a429557d5     2\n",
       "4  20250731  a54db8a4f36e43e9390cf3e43d45f308     9"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "target_cust_info = pd.read_csv('../DATA/TARGET_VALID.csv')\n",
    "target_cust_info.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "291fa47f",
   "metadata": {},
   "source": [
    "## 特征文件加载"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7cf8bfb",
   "metadata": {},
   "source": [
    "### 通用pkl加载函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c02a7e58",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征加载器已初始化\n"
     ]
    }
   ],
   "source": [
    "class FeatureLoader:\n",
    "    \"\"\"\n",
    "    特征文件加载器\n",
    "    支持批量加载feature目录下的所有pkl文件\n",
    "    \"\"\"\n",
    "    \n",
    "    def __init__(self, feature_dir='./feature'):\n",
    "        \"\"\"\n",
    "        初始化加载器\n",
    "        \n",
    "        参数:\n",
    "        - feature_dir: 特征文件目录路径\n",
    "        \"\"\"\n",
    "        self.feature_dir = feature_dir\n",
    "        self.features_dict = {}\n",
    "        self.feature_info = {}\n",
    "        \n",
    "    def load_single_feature(self, file_path):\n",
    "        \"\"\"\n",
    "        加载单个pkl特征文件\n",
    "        \n",
    "        参数:\n",
    "        - file_path: pkl文件路径\n",
    "        \n",
    "        返回:\n",
    "        - DataFrame: 特征数据\n",
    "        \"\"\"\n",
    "        try:\n",
    "            with open(file_path, 'rb') as f:\n",
    "                data = pickle.load(f)\n",
    "            \n",
    "            if not isinstance(data, pd.DataFrame):\n",
    "                raise ValueError(f\"文件 {file_path} 不是DataFrame格式\")\n",
    "            \n",
    "            return data\n",
    "        except Exception as e:\n",
    "            print(f\"加载文件 {file_path} 失败: {str(e)}\")\n",
    "            return None\n",
    "    \n",
    "    def load_all_features(self, pattern='*.pkl'):\n",
    "        \"\"\"\n",
    "        批量加载所有特征文件\n",
    "        \n",
    "        参数:\n",
    "        - pattern: 文件匹配模式\n",
    "        \n",
    "        返回:\n",
    "        - dict: {文件名: DataFrame}\n",
    "        \"\"\"\n",
    "        if not os.path.exists(self.feature_dir):\n",
    "            print(f\"目录不存在: {self.feature_dir}\")\n",
    "            return {}\n",
    "        \n",
    "        pkl_files = [f for f in os.listdir(self.feature_dir) if f.endswith('.pkl')]\n",
    "        \n",
    "        if not pkl_files:\n",
    "            print(f\"未找到pkl文件在目录: {self.feature_dir}\")\n",
    "            return {}\n",
    "        \n",
    "        print(f\"发现 {len(pkl_files)} 个特征文件\")\n",
    "        print(\"=\"*80)\n",
    "        \n",
    "        for pkl_file in pkl_files:\n",
    "            file_path = os.path.join(self.feature_dir, pkl_file)\n",
    "            file_name = os.path.splitext(pkl_file)[0]\n",
    "            \n",
    "            print(f\"\\n正在加载: {pkl_file}\")\n",
    "            data = self.load_single_feature(file_path)\n",
    "            \n",
    "            if data is not None:\n",
    "                self.features_dict[file_name] = data\n",
    "                \n",
    "                # 记录文件信息\n",
    "                self.feature_info[file_name] = {\n",
    "                    'file_path': file_path,\n",
    "                    'file_size_mb': os.path.getsize(file_path) / 1024 / 1024,\n",
    "                    'shape': data.shape,\n",
    "                    'memory_mb': data.memory_usage(deep=True).sum() / 1024 / 1024,\n",
    "                    'columns': data.columns.tolist()\n",
    "                }\n",
    "                \n",
    "                print(f\"  - 形状: {data.shape}\")\n",
    "                print(f\"  - 文件大小: {self.feature_info[file_name]['file_size_mb']:.2f} MB\")\n",
    "                print(f\"  - 内存占用: {self.feature_info[file_name]['memory_mb']:.2f} MB\")\n",
    "        \n",
    "        print(\"\\n\" + \"=\"*80)\n",
    "        print(f\"成功加载 {len(self.features_dict)} 个特征文件\")\n",
    "        \n",
    "        return self.features_dict\n",
    "    \n",
    "    def get_feature_summary(self):\n",
    "        \"\"\"\n",
    "        获取所有特征文件的汇总信息\n",
    "        \n",
    "        返回:\n",
    "        - DataFrame: 汇总表\n",
    "        \"\"\"\n",
    "        if not self.feature_info:\n",
    "            print(\"请先加载特征文件\")\n",
    "            return None\n",
    "        \n",
    "        summary_data = []\n",
    "        for name, info in self.feature_info.items():\n",
    "            summary_data.append({\n",
    "                '特征文件': name,\n",
    "                '样本数': info['shape'][0],\n",
    "                '特征数': info['shape'][1] - 1 if 'CUST_NO' in info['columns'] else info['shape'][1],\n",
    "                '文件大小(MB)': round(info['file_size_mb'], 2),\n",
    "                '内存占用(MB)': round(info['memory_mb'], 2)\n",
    "            })\n",
    "        \n",
    "        summary_df = pd.DataFrame(summary_data)\n",
    "        summary_df = summary_df.sort_values('特征数', ascending=False).reset_index(drop=True)\n",
    "        \n",
    "        # 添加汇总行\n",
    "        total_row = pd.DataFrame([{\n",
    "            '特征文件': '总计',\n",
    "            '样本数': '-',\n",
    "            '特征数': summary_df['特征数'].sum(),\n",
    "            '文件大小(MB)': round(summary_df['文件大小(MB)'].sum(), 2),\n",
    "            '内存占用(MB)': round(summary_df['内存占用(MB)'].sum(), 2)\n",
    "        }])\n",
    "        \n",
    "        summary_df = pd.concat([summary_df, total_row], ignore_index=True)\n",
    "        \n",
    "        return summary_df\n",
    "\n",
    "# 创建加载器实例\n",
    "loader = FeatureLoader(feature_dir='./feature')\n",
    "print(\"特征加载器已初始化\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d765a4e2",
   "metadata": {},
   "source": [
    "### 加载所有特征文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "cb190805",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "发现 10 个特征文件\n",
      "================================================================================\n",
      "\n",
      "正在加载: AGET_PAY_features.pkl\n",
      "  - 形状: (530, 47)\n",
      "  - 文件大小: 0.21 MB\n",
      "  - 内存占用: 0.23 MB\n",
      "\n",
      "正在加载: ASSET_features.pkl\n",
      "  - 形状: (5624, 139)\n",
      "  - 文件大小: 5.99 MB\n",
      "  - 内存占用: 6.27 MB\n",
      "\n",
      "正在加载: CCD_TR_DTL_features.pkl\n",
      "  - 形状: (18, 48)\n",
      "  - 文件大小: 0.01 MB\n",
      "  - 内存占用: 0.01 MB\n",
      "\n",
      "正在加载: mb_pageview_dtl_features.pkl\n",
      "  - 形状: (2753, 503)\n",
      "  - 文件大小: 10.60 MB\n",
      "  - 内存占用: 10.71 MB\n",
      "\n",
      "正在加载: MB_TRNFLW_QRYTRNFLW_features.pkl\n",
      "  - 形状: (3128, 239)\n",
      "  - 文件大小: 5.77 MB\n",
      "  - 内存占用: 5.92 MB\n",
      "\n",
      "正在加载: NATURE_features.pkl\n",
      "  - 形状: (5975, 26)\n",
      "  - 文件大小: 1.21 MB\n",
      "  - 内存占用: 1.51 MB\n",
      "\n",
      "正在加载: PROD_HOLD_features.pkl\n",
      "  - 形状: (5741, 41)\n",
      "  - 文件大小: 1.66 MB\n",
      "  - 内存占用: 1.95 MB\n",
      "\n",
      "正在加载: tr_aps_dtl_features.pkl\n",
      "  - 形状: (5616, 309)\n",
      "  - 文件大小: 13.29 MB\n",
      "  - 内存占用: 13.57 MB\n",
      "\n",
      "正在加载: TR_IBTF_features.pkl\n",
      "  - 形状: (2981, 86)\n",
      "  - 文件大小: 1.96 MB\n",
      "  - 内存占用: 2.11 MB\n",
      "\n",
      "正在加载: TR_TPAY_features.pkl\n",
      "  - 形状: (3595, 65)\n",
      "  - 文件大小: 1.76 MB\n",
      "  - 内存占用: 1.94 MB\n",
      "\n",
      "================================================================================\n",
      "成功加载 10 个特征文件\n",
      "\n",
      "特征文件汇总:\n",
      "                            特征文件   样本数   特征数  文件大小(MB)  内存占用(MB)\n",
      "0       mb_pageview_dtl_features  2753   502     10.60     10.71\n",
      "1            tr_aps_dtl_features  5616   308     13.29     13.57\n",
      "2   MB_TRNFLW_QRYTRNFLW_features  3128   238      5.77      5.92\n",
      "3                 ASSET_features  5624   138      5.99      6.27\n",
      "4               TR_IBTF_features  2981    85      1.96      2.11\n",
      "5               TR_TPAY_features  3595    64      1.76      1.94\n",
      "6            CCD_TR_DTL_features    18    47      0.01      0.01\n",
      "7              AGET_PAY_features   530    46      0.21      0.23\n",
      "8             PROD_HOLD_features  5741    40      1.66      1.95\n",
      "9                NATURE_features  5975    25      1.21      1.51\n",
      "10                            总计     -  1493     42.46     44.22\n"
     ]
    }
   ],
   "source": [
    "# 加载所有特征文件\n",
    "features_dict = loader.load_all_features()\n",
    "\n",
    "# 查看特征文件汇总\n",
    "summary_df = loader.get_feature_summary()\n",
    "print(\"\\n特征文件汇总:\")\n",
    "print(summary_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f1f9bee",
   "metadata": {},
   "source": [
    "# 模型训练与优化\n",
    "\n",
    "本notebook实现了基于LightGBM、CatBoost、XGBoost的多分类模型训练，并通过加权融合优化最终预测结果。\n",
    "\n",
    "## 主要特点:\n",
    "1. 多折交叉验证策略\n",
    "2. 详细的参数调优\n",
    "3. 特征重要性分析\n",
    "4. 模型融合策略\n",
    "5. Macro-F1评分优化\n",
    "# 建模训练"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "46ed3745",
   "metadata": {},
   "source": [
    "# 1. 数据准备与特征合并"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff38c901",
   "metadata": {},
   "source": [
    "## 1.1 合并所有特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "38b330fa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "开始合并特征...\n",
      "初始形状: (5975, 2)\n",
      "================================================================================\n",
      "\n",
      "正在合并: AGET_PAY_features\n",
      "  特征形状: (530, 47)\n",
      "  合并后形状: (5975, 48)\n",
      "\n",
      "正在合并: ASSET_features\n",
      "  特征形状: (5624, 139)\n",
      "  合并后形状: (5975, 186)\n",
      "\n",
      "正在合并: CCD_TR_DTL_features\n",
      "  特征形状: (18, 48)\n",
      "  合并后形状: (5975, 233)\n",
      "\n",
      "正在合并: mb_pageview_dtl_features\n",
      "  特征形状: (2753, 503)\n",
      "  合并后形状: (5975, 735)\n",
      "\n",
      "正在合并: MB_TRNFLW_QRYTRNFLW_features\n",
      "  特征形状: (3128, 239)\n",
      "  合并后形状: (5975, 973)\n",
      "\n",
      "正在合并: NATURE_features\n",
      "  特征形状: (5975, 26)\n",
      "  合并后形状: (5975, 998)\n",
      "\n",
      "正在合并: PROD_HOLD_features\n",
      "  特征形状: (5741, 41)\n",
      "  合并后形状: (5975, 1038)\n",
      "\n",
      "正在合并: tr_aps_dtl_features\n",
      "  特征形状: (5616, 309)\n",
      "  合并后形状: (5975, 1346)\n",
      "\n",
      "正在合并: TR_IBTF_features\n",
      "  特征形状: (2981, 86)\n",
      "  合并后形状: (5975, 1431)\n",
      "\n",
      "正在合并: TR_TPAY_features\n",
      "  特征形状: (3595, 65)\n",
      "  合并后形状: (5975, 1495)\n",
      "\n",
      "================================================================================\n",
      "最终合并完成，总形状: (5975, 1495)\n",
      "总特征数: 1493\n",
      "\n",
      "数据概览:\n",
      "  - 样本数: 5,975\n",
      "  - 特征数: 1,493\n",
      "  - 总列数: 1,495\n",
      "  - 内存占用: 68.48 MB\n"
     ]
    }
   ],
   "source": [
    "# 从features_dict中提取所有特征DataFrame并合并\n",
    "all_features_df = target_cust_info[['CUST_NO', 'FLAG']].copy()\n",
    "\n",
    "print(\"开始合并特征...\")\n",
    "print(f\"初始形状: {all_features_df.shape}\")\n",
    "print(\"=\"*80)\n",
    "\n",
    "for feature_name, feature_df in features_dict.items():\n",
    "    print(f\"\\n正在合并: {feature_name}\")\n",
    "    print(f\"  特征形状: {feature_df.shape}\")\n",
    "    \n",
    "    # 检查是否有CUST_NO列\n",
    "    if 'CUST_NO' not in feature_df.columns:\n",
    "        print(f\"  警告: {feature_name} 没有CUST_NO列，跳过\")\n",
    "        continue\n",
    "    \n",
    "    # 合并特征\n",
    "    all_features_df = all_features_df.merge(feature_df, on='CUST_NO', how='left')\n",
    "    print(f\"  合并后形状: {all_features_df.shape}\")\n",
    "\n",
    "print(\"\\n\" + \"=\"*80)\n",
    "print(f\"最终合并完成，总形状: {all_features_df.shape}\")\n",
    "print(f\"总特征数: {all_features_df.shape[1] - 2}\")  # 减去CUST_NO和FLAG\n",
    "\n",
    "# 显示基本信息\n",
    "print(f\"\\n数据概览:\")\n",
    "print(f\"  - 样本数: {all_features_df.shape[0]:,}\")\n",
    "print(f\"  - 特征数: {all_features_df.shape[1] - 2:,}\")\n",
    "print(f\"  - 总列数: {all_features_df.shape[1]:,}\")\n",
    "print(f\"  - 内存占用: {all_features_df.memory_usage(deep=True).sum() / 1024 / 1024:.2f} MB\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d37a7796",
   "metadata": {},
   "source": [
    "## 1.2 查看目标变量分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cb8b1432",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "FLAG分布统计:\n",
      "================================================================================\n",
      "FLAG\n",
      "1      169\n",
      "2       73\n",
      "4     2987\n",
      "5     1068\n",
      "7      137\n",
      "8      280\n",
      "9     1250\n",
      "10      11\n",
      "Name: count, dtype: int64\n",
      "\n",
      "比例:\n",
      "FLAG\n",
      "1      2.83\n",
      "2      1.22\n",
      "4     49.99\n",
      "5     17.87\n",
      "7      2.29\n",
      "8      4.69\n",
      "9     20.92\n",
      "10     0.18\n",
      "Name: count, dtype: float64\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABFkAAAHqCAYAAADf+5FCAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAio5JREFUeJzt3QeYlNXZxvH7ndnee6N3kKZgQ5FYEDRqLMResEcFEzWxJfYSosYeg/nUiI3YYu8tYgFFERSkI53tve/szHzXeXFXFhZYYHan/X/Je+3OzDszZ88u6849z3mO5fV6vQIAAAAAAMAecezZ3QEAAAAAAEDIAgAAAAAA4CNUsgAAAAAAAPgAIQsAAAAAAIAPELIAAAAAAAD4ACELAAAAAACADxCyAAAAAAAA+AAhCwAAAAAAgA8QsgAAAAAAAPgAIQsAAAAAAIAPRPjiQQBgV3366ac67LDDdnre5MmTNWPGjNbLlmVt97ad+fbbb7Xffvu1ue6Pf/yj/v73v+/0vkuXLtUTTzyhzz77TD/99JMqKioUGRmp7OxsDRkyRGPHjtVvf/tbDRw40D7f4/Goqqpqp48bFRWluLg4NTU1qa6ubqfnm3PNfTpDZ4/ZnGvuszNJSUlyOHgPAADgX/ytEn5/qwA+4QUAP/jf//7nNb+CdnZMnjy5zf12dNvOXHbZZds8fk5Ojtflcm33PvX19d6pU6d6Lcva6VgHDRrUer/Vq1fv0tf35JNPduh8c15n6ewxm/t15HwzDgAA/I2/VcLvbxXAF6hkARAQTj31VO27777bXD9s2DCfPH5jY6Oef/75ba4vKCjQe++9p2OPPXab29xutz2uN954o/W62NhY+9yhQ4cqIiJC+fn5+vrrrzVv3rxt7h8dHa2GhobtjslU0CxatKj18sSJE+2xbE97Y/S1zh7ztGnTdN111233/ISEhF0eMwAAXYG/VcLjbxVgTxGyAAgIRx11lM4999xOe3wTlJSVlbUuOerfv79WrFhhXzZLjtr7D6xZHrRlwDJ69Gi9/vrr6tat2zbnbtiwQW+++WanjR8AAPgXf6sA6AgWvQMIC08++WTr52PGjNHUqVNbL5twpLS0dJv73H///W3eNXnttdfaDViM7t2769JLL/X5uAEAQHjgbxUgNFDJAiAgmDLOkpKSdktze/TosUePbZb0fPDBB62XTzvtNJ188sm68sor7QZqpinazJkzdfnll7ees2nTJrvZ7ZbvXpkgBQAAhCf+VgHQEYQsAALCCy+8YB9bM31a9jRkeeaZZ+z+KobT6dQpp5xi7wp06KGH6pNPPmldMrRlyLJx48Y2jzFo0KA2lx999NF2K1fMu1CduewJAAD4B3+rAOgIQhYAIW/LbZ5NsGIClpaKlpaQ5bvvvtPChQs1fPjwdh9jy62jA91jjz2mysrKba6/+OKL7e2RAQBAYOFvlc34WwWhgJAFQEDorAoQs/PPkiVLWi+bYKXFpEmTNGXKFLlcrtYx3HffffbnW/deWbZsWZvLpq/LPffcY+9OdO+99yqQ3HnnnVq7du021//2t78lZAEAYDfxt4rv8LcKQhmNbwGEzTtDxkUXXWRXpZgjPT29NWAxnnvuOTU3N9uf5+XlafDgwa23vf/++3ag0mLkyJH605/+xNIgAADA3yoAWhGyAAhZDQ0Nev755zt8flFRkd55553Wy3/4wx9aP6+vr7crQdrbhSjQrFmzRl6vd5ujd+/e/h4aAADYAn+r8LcKQg/LhQAErbfeestujNsesy3zrFmzVFFR0Xrd4YcfrszMzG3OfeONN+wQpaUU+De/+U1r1Yu57d1337Uvf/nll+rXr5+OP/54DRw40K56mTt3bid9dQAAINjxtwoQfghZAAQtU1WyvcqSxsbGNkuFTMNXE7zExcVtc+4555xj70BkvP322/ZW0hkZGfZORC+//LJ+//vf64knnrBvNw1ln3766Xaf0+FwKCUlxUdfHQAACHb8rQKEH5YLAQhJZgvmDz/8sE3D2/YCFuO8885r/dz0aDG9WVqY+zz++OOaP3++pk6davdiMUGKCWASEhLsrZ1POukkPfTQQ3az2RNOOKGTvzIAABAK+FsFCE1UsgDwC7OVsukTsqt25T5ut7tD5x122GE7fdy9995bDz/8cIefGwAABDf+VgGwO6hkAQAAAAAA8AFCFgDoJKYvTMt20e0dV199dZvzzTbROzrf9IsJ9jFff/31Ozy/tra2079GAACwGX+rdM3fVwgvlnd36vUBADvk8XhUVVW101mKioqy+740NTWprq5up+ebc819gnHM5lxzn50xTYpNE2EAANB5+Fula/6+QvghZAEAAAAAAPAB3ioEAAAAAADwAUIWAAAAAAAAH2AL591cv7hp0yYl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m+vN5aVLl25zfmNjo320qKystD9WVFTI4/Hs9jiqq6tlWZY2LflBrroa+Uvx2p/scZjxmK/Jn5gT5oSfk+D+txNIv1OYE+akI1avXq2G+nqNmzxFKdnd5E8VhRv1+dP/tMeUlJS0W49RVVVlf/R6vT4eHQAA6AjLG4b/Fd60aZO6deum2bNna8yYMa3XX3PNNZo1a5a+/vrrNuffcsstuvXWW/0wUgAAgF23fv16de/enakDAKCLhWUli1nv7HQ6VVhY2OZ6czknJ2eb882yItMkt4WpXikrK1N6err9bq0/mXesevToYf8xtbvveoUa5oQ54eeEfzv8PuF3bLj+t8e8d2aquPLy8vw2BgAAwllYhixRUVEaPXq0Pv74Y51wwgmtwYm5PHXq1G3Oj46Oto8tpaSkKJCYP+gIWZgTfk74t8PvE37H8t8d/wqE/x4nJyf79fkBAAhnYRmyGKYyZfLkydp33321//7764EHHlBtbW3rbkMAAAAAAAC7ImxDllNPPVXFxcW66aabVFBQoL333lvvvffeNs1wAQAAAAAAOiJsQxbDLA1qb3lQMDHLmG6++eZtljOFM+aEOeHnhH87/D7hdyz/7QEAAP4QlrsLAQAAAAAA+JrD548IAAAAAAAQhghZAAAAAAAAfICQBQAAAAAAwAcIWYLUZ599puOOO055eXmyLEuvvfaawt20adO03377KTExUVlZWTrhhBO0bNkyfw8rYPztb3+zf1auuOIKhbNbbrnFnoctj8GDByuc9e7de5s5MceUKVMUrtxut2688Ub16dNHsbGx6tevn26//XaFexuz6upq+3dIr1697Hk56KCD9M033yhc7Oy/vebnw+xamJuba8/P+PHjtWLFCr+NFwAAdD1CliBVW1urkSNH6pFHHvH3UALGrFmz7BeFX331lT788EO5XC5NmDDBnqtwZ14E/etf/9KIESP8PZSAMHToUOXn57ceX3zxhcL952PL+TD/foyTTz5Z4equu+7S9OnT9Y9//ENLliyxL9999916+OGHFc4uvPBC++fjmWee0cKFC+3fsSZI2Lhxo8LBzv7ba35GHnroIT366KP6+uuvFR8fr4kTJ6qhoaHLxwoAAPyD3YVCgHk37dVXX7UrN/CL4uJiu6LFhC/jxo0L26mpqanRqFGj9M9//lN33HGH9t57bz3wwAMK50oW8+7zggUL/D2UgGUqFd566y37HXjz+yUcHXvsscrOztYTTzzRet2kSZPs6oRnn31W4ai+vt6uFHz99dd1zDHHtF4/evRoHX300fbvl3D+b6+pYjEVLn/84x/1pz/9yb6usrLS/jmaMWOGTjvtND+PGAAAdAUqWRCyzB+3RlpamsKZqe4xL4jMu83YzIQH5sVQ3759deaZZ2rdunVMzc+amprsEOH8888P24DFMMtgPv74Yy1fvty+/P3339sVTyZMCFfNzc32MqqYmJg215vgKdyrwYzVq1eroKCgze/a5ORkHXDAAZozZ45fxwYAALpORBc+F9BlPB6P/W78wQcfrGHDhoXtzD///PP67rvvwqpnws6YFzzmXeVBgwbZS2NuvfVWHXLIIVq0aJH9Ln24M1U+FRUVOvfccxXOrrvuOlVVVdn9epxOpx0u3HnnnXYoF67Mv48xY8bYvWmGDBliV2j85z//sQOE/v37K9yZgMUw87Ilc7nlNgAAEPoIWRCy1RvmRXM4v7u6fv16/eEPf7D7J2z9znM427ISwfSoMaGLaeL54osv6oILLlC4M8tjzByZSp9wZn4ennvuOc2cOdPu4WOWl5ng1szL5MmTFa5MLxZT5dStWzc7fDJLEU8//XTNmzfP30MDAAAICIQsCDlTp061+0mYXSC6d++ucGVe9BQVFdkvglqYd+PNvJhmno2NjfaLpHCXkpKigQMHauXKlQp3a9eu1UcffaRXXnlF4e7qq6+2q1la+mgMHz7cnh+zi1k4hyxmlyXT58o0gDWVPmYXnVNPPdVeehfucnJy7I+FhYX2vLQwl00vLAAAEB7oyYKQYZoOmoDFNCL85JNP7K1Xw9kRRxxh7/5h3oFvOfbdd197uYP5nIDll8bAq1atavOiKFw9+eSTdrPoLZuahqu6ujo5HG3/E2n+zZiliJC9a475N1NeXq73339fxx9/fNhPi/lvjglaTC+fFiaIMrsMmWVWAAAgPFDJEsQvDLd859003DMvnE2T1549eypclwiZ0n6z84XpHdCyBt40HjSNGcONmYOt+9GYF0bp6elh3afG7Ppx3HHH2UuENm3apJtvvtl+8WyWPIQzEx6YkMVUaURE8J8G8zNierCY36dmudD8+fN133332UtlwpkJVEygbXoamf8GmYof07fmvPPOUzjY2X97zZIys8vSgAED7NDlxhtvtJeYsfsfAADhg7+kg9S3336rww47rPXyVVddZX80L5BMU89wNH36dPvjoYce2uZ688Ix3Jt44hcbNmywA5XS0lJlZmZq7Nix+uqrr+zPw5lZJmR2WQr3EKHFww8/bL9Avuyyy+xld+aF8u9+9zvddNNNCvdd266//nr735EJFsy21iaMioyMVDjY2X97r7nmGnsp1cUXX2w3kDa/X9577z36YgEAEEYsr3lLCgAAAAAAAHuEniwAAAAAAAA+QMgCAAAAAADgA4QsAAAAAAAAPkDIAgAAAAAA4AOELAAAAAAAAD5AyAIAAAAAAOADhCwAAAAAAAA+QMgCAAAAAADgA4QsAAAAAAAAPkDIAgBbmDFjhizLave47rrr7HN69+6tY489tsPz9s4779j3z8vLk8fj2e55VVVVuvPOO7XvvvsqOTlZ0dHR6tWrl0499VS9/fbbfJ8AAACAABfh7wEAQCC67bbb1KdPnzbXDRs2bLce67nnnrODmTVr1uiTTz7R+PHjtzln5cqVmjhxotauXasTTzxR55xzjhISErR+/Xo7pDGhztNPP62zzz5btbW1SklJsUOY9rhcLr377rs64IADOnTe4YcfvltfFwAAAIC2CFkAoB1HH320XVGyp0wg8vrrr2vatGl68skn7cBl65ClubnZDlYKCws1a9YsHXzwwW1uv/nmm/XBBx/I7Xbbl71er7Kzs7Vhw4Z2n/O0006zK2Y6eh4AAAAA3yBkAYBO9Oqrr6q+vl4nn3yy/dEsB5o+fbpiYmJaz3nppZe0aNEi/e1vf9smYGkxYcIEvk8AAABAgKMnCwC0o7KyUiUlJW2O3WEqVw477DDl5OTYlSPV1dV6880325zTcvmss87iewEAAAAEMSpZAKAd7fVNMctvdkVRUZE++ugju3LF6Nmzp8aMGWMHL6aypcXSpUvt3indunXbZqmRqX5pERUVpaSkJL5fAAAAQIAiZAGAdjzyyCMaOHDgHs3N888/L4fDoUmTJrVed/rpp+uPf/yjysvLlZqa2rqrkGlyu7W//OUvevDBB1svH3PMMXrrrbf4fgEAAAABipAFANqx//7773Hj22effdZ+nNLSUvsw9tlnHzU1Ndl9WC6++GL7usTExNbbt3TZZZe1bhXNUiIAAAAg8BGyAEAnWLFihb755hv78wEDBmxzu1ky1BKyDB48WAsWLNDGjRvbLBkylTQt1TRbNsoFAAAAEJgIWQCgE5gQJTIyUs8884ycTmeb27744gs99NBDWrdund2nxVSrmKVF5j7XXHMN3w8AAAAgSBGyAEAnMIHJIYccolNPPXWb20zzWxOy/Oc//9G1116rU045RX/96191++23a9y4cTrwwAP3uOkuAAAAgK5HyAIAu2HlypW64447trne9FzJyMiwb586dWq79zVLgkaNGmUHMSZkMRUvr776qiZOnKixY8fqpJNOsgOa+Ph4ewnRG2+8YVe9mMa3AAAAAAIXIQsA7IZly5bpxhtv3Ob6Cy64QHFxcfbnxx133Hbvb2675ZZb9MMPP2jEiBF27xXTl8VUuJjA5d1337Ub5GZnZ+uAAw7QzTff3NoEFwAAAEBgsrzUoANAUKmpqbGb5W7YsKHd20877TRdeOGF9rKjjpw3fvz4Th4xAAAAEB4c/h4AAAAAAABAKGC5EAAEoU2bNiklJaXd2+rq6uwKlV05DwAAAMCeY7kQAAAAAACAD7BcCAAAAAAAwAcIWQAAAAAAAHyAkAUAAAAAAMAHCFkAAAAAAAB8gJAFAAAAAADABwhZAAAAAAAAfICQBQAAAAAAwAcIWQAAAAAAAHyAkAUAAAAAAMAHCFkAAAAAAAC05/4fxJfXzEpC7iQAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "样本是否平衡:\n",
      "最大类别/最小类别 = 271.55\n",
      "样本不平衡较严重，建议使用类别权重或采样策略\n"
     ]
    }
   ],
   "source": [
    "# 查看FLAG分布\n",
    "print(\"FLAG分布统计:\")\n",
    "print(\"=\"*80)\n",
    "flag_counts = all_features_df['FLAG'].value_counts().sort_index()\n",
    "print(flag_counts)\n",
    "print(\"\\n比例:\")\n",
    "print((flag_counts / len(all_features_df) * 100).round(2))\n",
    "\n",
    "# 可视化\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "plt.figure(figsize=(12, 5))\n",
    "\n",
    "plt.subplot(1, 2, 1)\n",
    "flag_counts.plot(kind='bar', color='skyblue', edgecolor='black')\n",
    "plt.title('FLAG分布 - 柱状图', fontsize=14, fontweight='bold')\n",
    "plt.xlabel('FLAG类别', fontsize=12)\n",
    "plt.ylabel('样本数量', fontsize=12)\n",
    "plt.xticks(rotation=0)\n",
    "plt.grid(axis='y', alpha=0.3)\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "colors = plt.cm.Set3(range(len(flag_counts)))\n",
    "plt.pie(flag_counts.values, labels=flag_counts.index, autopct='%1.1f%%', \n",
    "        colors=colors, startangle=90)\n",
    "plt.title('FLAG分布 - 饼图', fontsize=14, fontweight='bold')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "print(\"\\n样本是否平衡:\")\n",
    "imbalance_ratio = flag_counts.max() / flag_counts.min()\n",
    "print(f\"最大类别/最小类别 = {imbalance_ratio:.2f}\")\n",
    "if imbalance_ratio > 5:\n",
    "    print(\"样本不平衡较严重，建议使用类别权重或采样策略\")\n",
    "else:\n",
    "    print(\"样本相对平衡\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec7f938f",
   "metadata": {},
   "source": [
    "## 1.3 数据清洗与预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "91fcda12",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "开始数据预处理...\n",
      "================================================================================\n",
      "\n",
      "发现 25 个全空列:\n",
      "['DP_IND', 'IL_IND', 'DCARD_IND', 'CCARD_IND', 'FNCG_IND', 'FUND_IND', 'BOND_IND', 'INSUR_IND', 'METAL_IND', 'PAY_IND', 'EBNK_IND', 'MB_IND', 'MS_IND', 'TDPT_PAY_ALI_IND', 'TDPT_PAY_WCHT_IND', 'PROD_DEPOSIT_TYPE', 'PROD_LOAN_TYPE', 'PROD_CARD_COUNT', 'PROD_WEALTH_COUNT', 'PROD_ECHANNEL_COUNT', 'PROD_THIRDPAY_COUNT', 'PROD_HAS_PAY', 'PROD_VALUE_SCORE', 'PROD_ECHANNEL_ACTIVE', 'PROD_INVEST_ACTIVE']\n",
      "删除后形状: (5975, 1470)\n",
      "\n",
      "缺失值统计 (前10列):\n",
      "module_1993162004f0f20fe0bcda9337e150b4_last_visit      5969\n",
      "module_1993162004f0f20fe0bcda9337e150b4_unique_pages    5969\n",
      "module_1993162004f0f20fe0bcda9337e150b4_count           5969\n",
      "module_27145c21dd5cc647184d3b477607dfd4_count           5966\n",
      "module_27145c21dd5cc647184d3b477607dfd4_unique_pages    5966\n",
      "module_27145c21dd5cc647184d3b477607dfd4_last_visit      5966\n",
      "module_2e277a07f4ce93a6b31e927c7db8832f_count           5966\n",
      "module_2e277a07f4ce93a6b31e927c7db8832f_last_visit      5966\n",
      "module_2e277a07f4ce93a6b31e927c7db8832f_unique_pages    5966\n",
      "ccd_amt_kurt                                            5961\n",
      "dtype: int64\n",
      "\n",
      "总缺失值数量: 4,261,337\n",
      "缺失值占比: 48.52%\n",
      "\n",
      "================================================================================\n",
      "数据预处理完成\n",
      "\n",
      "预处理后数据形状: (5975, 1470)\n"
     ]
    }
   ],
   "source": [
    "# 数据清洗函数\n",
    "def data_preprocessing(df):\n",
    "    \"\"\"\n",
    "    数据预处理\n",
    "    1. 去除重复列\n",
    "    2. 删除全空列\n",
    "    3. 处理无穷值\n",
    "    4. 处理缺失值\n",
    "    \"\"\"\n",
    "    print(\"开始数据预处理...\")\n",
    "    print(\"=\"*80)\n",
    "    \n",
    "    # 1. 去除重复列\n",
    "    duplicate_cols = df.columns[df.columns.duplicated()].tolist()\n",
    "    if duplicate_cols:\n",
    "        print(f\"\\n发现 {len(duplicate_cols)} 个重复列:\")\n",
    "        print(duplicate_cols)\n",
    "        df = df.loc[:, ~df.columns.duplicated()]\n",
    "        print(f\"去除后形状: {df.shape}\")\n",
    "    \n",
    "    # 2. 删除全空列\n",
    "    null_cols = df.columns[df.isnull().all()].tolist()\n",
    "    if null_cols:\n",
    "        print(f\"\\n发现 {len(null_cols)} 个全空列:\")\n",
    "        print(null_cols)\n",
    "        df = df.drop(columns=null_cols)\n",
    "        print(f\"删除后形状: {df.shape}\")\n",
    "    \n",
    "    # 3. 处理无穷值\n",
    "    numeric_cols = df.select_dtypes(include=[np.number]).columns\n",
    "    inf_cols = []\n",
    "    for col in numeric_cols:\n",
    "        if np.isinf(df[col]).any():\n",
    "            inf_cols.append(col)\n",
    "            # 将无穷值替换为NaN\n",
    "            df[col] = df[col].replace([np.inf, -np.inf], np.nan)\n",
    "    \n",
    "    if inf_cols:\n",
    "        print(f\"\\n发现 {len(inf_cols)} 个包含无穷值的列，已替换为NaN\")\n",
    "    \n",
    "    # 4. 缺失值统计\n",
    "    missing_stats = df.isnull().sum()\n",
    "    missing_stats = missing_stats[missing_stats > 0].sort_values(ascending=False)\n",
    "    \n",
    "    if len(missing_stats) > 0:\n",
    "        print(f\"\\n缺失值统计 (前10列):\")\n",
    "        print(missing_stats.head(10))\n",
    "        print(f\"\\n总缺失值数量: {missing_stats.sum():,}\")\n",
    "        print(f\"缺失值占比: {missing_stats.sum() / (df.shape[0] * df.shape[1]) * 100:.2f}%\")\n",
    "    \n",
    "    print(\"\\n\" + \"=\"*80)\n",
    "    print(\"数据预处理完成\")\n",
    "    \n",
    "    return df\n",
    "\n",
    "# 执行预处理\n",
    "all_features_df = data_preprocessing(all_features_df)\n",
    "print(f\"\\n预处理后数据形状: {all_features_df.shape}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c53ce129",
   "metadata": {},
   "source": [
    "# 2. 评价指标定义"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "9b8d8929",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "评价指标函数定义完成\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score, classification_report, confusion_matrix\n",
    "\n",
    "def macro_f1_score(y_true, y_pred):\n",
    "    \"\"\"\n",
    "    计算Macro-F1分数\n",
    "    \n",
    "    参数:\n",
    "    - y_true: 真实标签\n",
    "    - y_pred: 预测标签\n",
    "    \n",
    "    返回:\n",
    "    - float: Macro-F1分数\n",
    "    \"\"\"\n",
    "    return f1_score(y_true, y_pred, average='macro')\n",
    "\n",
    "def print_classification_metrics(y_true, y_pred, model_name=\"Model\"):\n",
    "    \"\"\"\n",
    "    打印详细的分类指标\n",
    "    \n",
    "    参数:\n",
    "    - y_true: 真实标签\n",
    "    - y_pred: 预测标签\n",
    "    - model_name: 模型名称\n",
    "    \"\"\"\n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(f\"{model_name} - 分类报告\")\n",
    "    print(f\"{'='*80}\")\n",
    "    \n",
    "    # Macro-F1\n",
    "    macro_f1 = macro_f1_score(y_true, y_pred)\n",
    "    print(f\"\\nMacro-F1 Score: {macro_f1:.6f}\")\n",
    "    \n",
    "    # 详细报告\n",
    "    print(\"\\n详细分类报告:\")\n",
    "    print(classification_report(y_true, y_pred, digits=4))\n",
    "    \n",
    "    # 混淆矩阵\n",
    "    print(\"\\n混淆矩阵:\")\n",
    "    cm = confusion_matrix(y_true, y_pred)\n",
    "    print(cm)\n",
    "    \n",
    "    return macro_f1\n",
    "\n",
    "# LightGBM自定义评价函数\n",
    "def lgb_macro_f1(y_pred, y_true):\n",
    "    \"\"\"\n",
    "    LightGBM的Macro-F1评价函数\n",
    "    \"\"\"\n",
    "    y_true = y_true.get_label()\n",
    "    # y_pred是(n_samples * n_classes)的一维数组,需要reshape为(n_samples, n_classes)\n",
    "    y_pred = y_pred.reshape(len(y_true), -1)\n",
    "    y_pred = np.argmax(y_pred, axis=1)\n",
    "    return 'macro_f1', macro_f1_score(y_true, y_pred), True\n",
    "\n",
    "print(\"评价指标函数定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7bb18485",
   "metadata": {},
   "source": [
    "# 3. 特征工程与特征选择"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "850392ba",
   "metadata": {},
   "source": [
    "## 3.1 特征选择函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "6b855d33",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "开始特征选择...\n",
      "初始特征数: 1468\n",
      "================================================================================\n",
      "\n",
      "1. 检查重复特征...\n",
      "   发现 49 个重复特征\n",
      "\n",
      "2. 检查高缺失率特征 (阈值: 0.95)...\n",
      "   发现 208 个高缺失率特征\n",
      "\n",
      "3. 检查低方差特征 (阈值: 0.001)...\n",
      "   发现 8 个低方差特征\n",
      "\n",
      "4. 检查高相关性特征 (阈值: 0.98)...\n",
      "   发现 202 个高相关性特征\n",
      "\n",
      "================================================================================\n",
      "特征选择完成:\n",
      "  - 删除重复特征: 49\n",
      "  - 删除高缺失率特征: 208\n",
      "  - 删除低方差特征: 8\n",
      "  - 删除高相关性特征: 202\n",
      "  - 最终特征数: 1001\n",
      "  - 特征保留率: 68.19%\n",
      "\n",
      "特征选择后数据形状: (5975, 1003)\n"
     ]
    }
   ],
   "source": [
    "def feature_selection(df, target_col='FLAG', \n",
    "                     remove_duplicates=True,\n",
    "                     remove_high_missing=True, missing_threshold=0.95,\n",
    "                     remove_low_variance=True, variance_threshold=0.01,\n",
    "                     remove_high_correlation=True, corr_threshold=0.98):\n",
    "    \"\"\"\n",
    "    综合特征选择\n",
    "    \n",
    "    参数:\n",
    "    - df: 数据框\n",
    "    - target_col: 目标列名\n",
    "    - remove_duplicates: 是否删除重复特征\n",
    "    - remove_high_missing: 是否删除高缺失率特征\n",
    "    - missing_threshold: 缺失率阈值\n",
    "    - remove_low_variance: 是否删除低方差特征\n",
    "    - variance_threshold: 方差阈值\n",
    "    - remove_high_correlation: 是否删除高相关性特征\n",
    "    - corr_threshold: 相关系数阈值\n",
    "    \n",
    "    返回:\n",
    "    - DataFrame: 筛选后的数据\n",
    "    - dict: 删除的特征统计\n",
    "    \"\"\"\n",
    "    print(\"开始特征选择...\")\n",
    "    print(f\"初始特征数: {df.shape[1] - 2}\")  # 减去CUST_NO和FLAG\n",
    "    print(\"=\"*80)\n",
    "    \n",
    "    removed_features = {\n",
    "        'duplicates': [],\n",
    "        'high_missing': [],\n",
    "        'low_variance': [],\n",
    "        'high_correlation': []\n",
    "    }\n",
    "    \n",
    "    # 获取特征列（排除CUST_NO和FLAG）\n",
    "    feature_cols = [col for col in df.columns if col not in ['CUST_NO', target_col]]\n",
    "    df_features = df[feature_cols].copy()\n",
    "    \n",
    "    # 1. 删除完全重复的特征\n",
    "    if remove_duplicates:\n",
    "        print(\"\\n1. 检查重复特征...\")\n",
    "        # 转置后查找重复\n",
    "        duplicated_features = []\n",
    "        seen = set()\n",
    "        for col in df_features.columns:\n",
    "            col_tuple = tuple(df_features[col].fillna(-999).values)\n",
    "            col_hash = hash(col_tuple)\n",
    "            if col_hash in seen:\n",
    "                duplicated_features.append(col)\n",
    "            else:\n",
    "                seen.add(col_hash)\n",
    "        \n",
    "        if duplicated_features:\n",
    "            print(f\"   发现 {len(duplicated_features)} 个重复特征\")\n",
    "            df_features = df_features.drop(columns=duplicated_features)\n",
    "            removed_features['duplicates'] = duplicated_features\n",
    "    \n",
    "    # 2. 删除高缺失率特征\n",
    "    if remove_high_missing:\n",
    "        print(f\"\\n2. 检查高缺失率特征 (阈值: {missing_threshold})...\")\n",
    "        missing_ratio = df_features.isnull().mean()\n",
    "        high_missing_cols = missing_ratio[missing_ratio > missing_threshold].index.tolist()\n",
    "        \n",
    "        if high_missing_cols:\n",
    "            print(f\"   发现 {len(high_missing_cols)} 个高缺失率特征\")\n",
    "            df_features = df_features.drop(columns=high_missing_cols)\n",
    "            removed_features['high_missing'] = high_missing_cols\n",
    "    \n",
    "    # 3. 删除低方差特征\n",
    "    if remove_low_variance:\n",
    "        print(f\"\\n3. 检查低方差特征 (阈值: {variance_threshold})...\")\n",
    "        numeric_cols = df_features.select_dtypes(include=[np.number]).columns\n",
    "        \n",
    "        low_var_cols = []\n",
    "        for col in numeric_cols:\n",
    "            var = df_features[col].var()\n",
    "            if pd.isna(var) or var < variance_threshold:\n",
    "                low_var_cols.append(col)\n",
    "        \n",
    "        if low_var_cols:\n",
    "            print(f\"   发现 {len(low_var_cols)} 个低方差特征\")\n",
    "            df_features = df_features.drop(columns=low_var_cols)\n",
    "            removed_features['low_variance'] = low_var_cols\n",
    "    \n",
    "    # 4. 删除高相关性特征\n",
    "    if remove_high_correlation:\n",
    "        print(f\"\\n4. 检查高相关性特征 (阈值: {corr_threshold})...\")\n",
    "        numeric_cols = df_features.select_dtypes(include=[np.number]).columns\n",
    "        \n",
    "        if len(numeric_cols) > 1:\n",
    "            corr_matrix = df_features[numeric_cols].corr().abs()\n",
    "            upper_triangle = corr_matrix.where(\n",
    "                np.triu(np.ones(corr_matrix.shape), k=1).astype(bool)\n",
    "            )\n",
    "            \n",
    "            high_corr_cols = [\n",
    "                column for column in upper_triangle.columns \n",
    "                if any(upper_triangle[column] > corr_threshold)\n",
    "            ]\n",
    "            \n",
    "            if high_corr_cols:\n",
    "                print(f\"   发现 {len(high_corr_cols)} 个高相关性特征\")\n",
    "                df_features = df_features.drop(columns=high_corr_cols)\n",
    "                removed_features['high_correlation'] = high_corr_cols\n",
    "    \n",
    "    # 合并回CUST_NO和FLAG\n",
    "    result_df = pd.concat([\n",
    "        df[['CUST_NO', target_col]], \n",
    "        df_features\n",
    "    ], axis=1)\n",
    "    \n",
    "    print(\"\\n\" + \"=\"*80)\n",
    "    print(\"特征选择完成:\")\n",
    "    print(f\"  - 删除重复特征: {len(removed_features['duplicates'])}\")\n",
    "    print(f\"  - 删除高缺失率特征: {len(removed_features['high_missing'])}\")\n",
    "    print(f\"  - 删除低方差特征: {len(removed_features['low_variance'])}\")\n",
    "    print(f\"  - 删除高相关性特征: {len(removed_features['high_correlation'])}\")\n",
    "    print(f\"  - 最终特征数: {result_df.shape[1] - 2}\")\n",
    "    print(f\"  - 特征保留率: {(result_df.shape[1] - 2) / (df.shape[1] - 2) * 100:.2f}%\")\n",
    "    \n",
    "    return result_df, removed_features\n",
    "\n",
    "# 执行特征选择\n",
    "all_features_selected, removed_stats = feature_selection(\n",
    "    all_features_df,\n",
    "    missing_threshold=0.95,\n",
    "    variance_threshold=0.001,\n",
    "    corr_threshold=0.98\n",
    ")\n",
    "\n",
    "print(f\"\\n特征选择后数据形状: {all_features_selected.shape}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "192c800f",
   "metadata": {},
   "source": [
    "## 3.2 准备训练数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "9300a863",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征矩阵形状: (5975, 1001)\n",
      "标签形状: (5975,)\n",
      "特征数量: 1001\n",
      "原始标签范围: 1 - 10\n",
      "\n",
      "转换标签为0-9范围...\n",
      "转换后标签范围: 0 - 9\n",
      "标签分布: {0: 169, 1: 73, 3: 2987, 4: 1068, 6: 137, 7: 280, 8: 1250, 9: 11}\n",
      "\n",
      "处理缺失值...\n",
      "数据准备完成!\n"
     ]
    }
   ],
   "source": [
    "# 准备特征和标签\n",
    "feature_columns = [col for col in all_features_selected.columns if col not in ['CUST_NO', 'FLAG']]\n",
    "\n",
    "X = all_features_selected[feature_columns].copy()\n",
    "y = all_features_selected['FLAG'].copy()\n",
    "\n",
    "print(f\"特征矩阵形状: {X.shape}\")\n",
    "print(f\"标签形状: {y.shape}\")\n",
    "print(f\"特征数量: {len(feature_columns)}\")\n",
    "print(f\"原始标签范围: {y.min()} - {y.max()}\")\n",
    "\n",
    "# 将标签转换为0-9范围(原始是1-10)\n",
    "print(\"\\n转换标签为0-9范围...\")\n",
    "y = y - 1\n",
    "print(f\"转换后标签范围: {y.min()} - {y.max()}\")\n",
    "print(f\"标签分布: {y.value_counts().sort_index().to_dict()}\")\n",
    "\n",
    "# 填充缺失值\n",
    "print(\"\\n处理缺失值...\")\n",
    "X = X.fillna(X.median())\n",
    "\n",
    "# 检查是否还有缺失值\n",
    "remaining_missing = X.isnull().sum().sum()\n",
    "if remaining_missing > 0:\n",
    "    print(f\"警告: 仍有 {remaining_missing} 个缺失值，使用0填充\")\n",
    "    X = X.fillna(0)\n",
    "\n",
    "print(\"数据准备完成!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58f60991",
   "metadata": {},
   "source": [
    "# 4. 模型训练\n",
    "\n",
    "## 4.1 LightGBM模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "cac6291f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LightGBM训练函数定义完成\n"
     ]
    }
   ],
   "source": [
    "def train_lightgbm(X_train, y_train, X_valid=None, y_valid=None, params=None, n_estimators=1000):\n",
    "    \"\"\"\n",
    "    训练LightGBM模型\n",
    "    \n",
    "    参数:\n",
    "    - X_train: 训练特征\n",
    "    - y_train: 训练标签\n",
    "    - X_valid: 验证特征\n",
    "    - y_valid: 验证标签\n",
    "    - params: 模型参数\n",
    "    - n_estimators: 最大迭代轮数\n",
    "    \n",
    "    返回:\n",
    "    - model: 训练好的模型\n",
    "    - best_iteration: 最佳迭代轮数\n",
    "    \"\"\"\n",
    "    if params is None:\n",
    "        params = {\n",
    "            'objective': 'multiclass',\n",
    "            'num_class': 10,\n",
    "            'metric': 'multi_logloss',\n",
    "            'boosting_type': 'gbdt',\n",
    "            'num_leaves': 31,\n",
    "            'max_depth': -1,\n",
    "            'learning_rate': 0.03,\n",
    "            'feature_fraction': 0.8,\n",
    "            'bagging_fraction': 0.8,\n",
    "            'bagging_freq': 5,\n",
    "            'min_child_samples': 20,\n",
    "            'min_child_weight': 0.001,\n",
    "            'reg_alpha': 0.1,\n",
    "            'reg_lambda': 0.1,\n",
    "            'seed': 2024,\n",
    "            'verbose': -1,\n",
    "            'n_jobs': -1\n",
    "        }\n",
    "    \n",
    "    # 创建数据集\n",
    "    train_data = lgb.Dataset(X_train, label=y_train)\n",
    "    \n",
    "    if X_valid is not None and y_valid is not None:\n",
    "        valid_data = lgb.Dataset(X_valid, label=y_valid, reference=train_data)\n",
    "        valid_sets = [train_data, valid_data]\n",
    "        valid_names = ['train', 'valid']\n",
    "    else:\n",
    "        valid_sets = [train_data]\n",
    "        valid_names = ['train']\n",
    "    \n",
    "    # 训练模型\n",
    "    callbacks = [\n",
    "        log_evaluation(period=100),\n",
    "        early_stopping(stopping_rounds=100, verbose=True)\n",
    "    ]\n",
    "    \n",
    "    model = lgb.train(\n",
    "        params,\n",
    "        train_data,\n",
    "        num_boost_round=n_estimators,\n",
    "        valid_sets=valid_sets,\n",
    "        valid_names=valid_names,\n",
    "        callbacks=callbacks,\n",
    "        feval=lgb_macro_f1\n",
    "    )\n",
    "    \n",
    "    return model, model.best_iteration\n",
    "\n",
    "print(\"LightGBM训练函数定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abc14296",
   "metadata": {},
   "source": [
    "## 4.2 CatBoost模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b037af5f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CatBoost训练函数定义完成\n"
     ]
    }
   ],
   "source": [
    "from catboost import CatBoostClassifier, Pool\n",
    "\n",
    "def train_catboost(X_train, y_train, X_valid=None, y_valid=None, params=None, n_estimators=1000):\n",
    "    \"\"\"\n",
    "    训练CatBoost模型\n",
    "    \n",
    "    参数:\n",
    "    - X_train: 训练特征\n",
    "    - y_train: 训练标签\n",
    "    - X_valid: 验证特征\n",
    "    - y_valid: 验证标签\n",
    "    - params: 模型参数\n",
    "    - n_estimators: 最大迭代轮数\n",
    "    \n",
    "    返回:\n",
    "    - model: 训练好的模型\n",
    "    \"\"\"\n",
    "    if params is None:\n",
    "        params = {\n",
    "            'iterations': n_estimators,\n",
    "            'learning_rate': 0.03,\n",
    "            'depth': 6,\n",
    "            'l2_leaf_reg': 3,\n",
    "            'loss_function': 'MultiClass',\n",
    "            'eval_metric': 'TotalF1:average=Macro',\n",
    "            'random_seed': 2024,\n",
    "            'od_type': 'Iter',\n",
    "            'od_wait': 100,\n",
    "            'verbose': 100,\n",
    "            'task_type': 'CPU',\n",
    "            'thread_count': -1\n",
    "        }\n",
    "    \n",
    "    model = CatBoostClassifier(**params)\n",
    "    \n",
    "    if X_valid is not None and y_valid is not None:\n",
    "        model.fit(\n",
    "            X_train, y_train,\n",
    "            eval_set=(X_valid, y_valid),\n",
    "            use_best_model=True,\n",
    "            verbose=100\n",
    "        )\n",
    "    else:\n",
    "        model.fit(X_train, y_train, verbose=100)\n",
    "    \n",
    "    return model\n",
    "\n",
    "print(\"CatBoost训练函数定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d54d18fd",
   "metadata": {},
   "source": [
    "## 4.3 XGBoost模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ef5470cf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "XGBoost训练函数定义完成\n"
     ]
    }
   ],
   "source": [
    "def train_xgboost(X_train, y_train, X_valid=None, y_valid=None, params=None, n_estimators=1000):\n",
    "    \"\"\"\n",
    "    训练XGBoost模型\n",
    "    \n",
    "    参数:\n",
    "    - X_train: 训练特征\n",
    "    - y_train: 训练标签\n",
    "    - X_valid: 验证特征\n",
    "    - y_valid: 验证标签\n",
    "    - params: 模型参数\n",
    "    - n_estimators: 最大迭代轮数\n",
    "    \n",
    "    返回:\n",
    "    - model: 训练好的模型\n",
    "    \"\"\"\n",
    "    if params is None:\n",
    "        params = {\n",
    "            'objective': 'multi:softprob',\n",
    "            'num_class': 10,\n",
    "            'eval_metric': 'mlogloss',\n",
    "            'max_depth': 6,\n",
    "            'learning_rate': 0.03,\n",
    "            'subsample': 0.8,\n",
    "            'colsample_bytree': 0.8,\n",
    "            'min_child_weight': 1,\n",
    "            'reg_alpha': 0.1,\n",
    "            'reg_lambda': 0.1,\n",
    "            'seed': 2024,\n",
    "            'n_jobs': -1,\n",
    "            'tree_method': 'hist'\n",
    "        }\n",
    "    \n",
    "    # 创建DMatrix\n",
    "    dtrain = xgb.DMatrix(X_train, label=y_train)\n",
    "    \n",
    "    if X_valid is not None and y_valid is not None:\n",
    "        dvalid = xgb.DMatrix(X_valid, label=y_valid)\n",
    "        watchlist = [(dtrain, 'train'), (dvalid, 'valid')]\n",
    "        \n",
    "        model = xgb.train(\n",
    "            params,\n",
    "            dtrain,\n",
    "            num_boost_round=n_estimators,\n",
    "            evals=watchlist,\n",
    "            early_stopping_rounds=100,\n",
    "            verbose_eval=100\n",
    "        )\n",
    "    else:\n",
    "        watchlist = [(dtrain, 'train')]\n",
    "        model = xgb.train(\n",
    "            params,\n",
    "            dtrain,\n",
    "            num_boost_round=n_estimators,\n",
    "            evals=watchlist,\n",
    "            verbose_eval=100\n",
    "        )\n",
    "    \n",
    "    return model\n",
    "\n",
    "print(\"XGBoost训练函数定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9329b50",
   "metadata": {},
   "source": [
    "## 4.4 交叉验证训练框架"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "140f1391",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "交叉验证训练框架定义完成\n"
     ]
    }
   ],
   "source": [
    "def cross_validation_train(X, y, model_type='lgb', n_splits=5, random_state=2024, \n",
    "                          params=None, save_model=True, model_dir='./model'):\n",
    "    \"\"\"\n",
    "    交叉验证训练\n",
    "    \n",
    "    参数:\n",
    "    - X: 特征矩阵\n",
    "    - y: 标签\n",
    "    - model_type: 模型类型 ('lgb', 'cat', 'xgb')\n",
    "    - n_splits: 折数\n",
    "    - random_state: 随机种子\n",
    "    - params: 模型参数\n",
    "    - save_model: 是否保存模型\n",
    "    - model_dir: 模型保存目录\n",
    "    \n",
    "    返回:\n",
    "    - dict: 包含模型、预测结果、评分等信息\n",
    "    \"\"\"\n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(f\"开始 {model_type.upper()} 模型 {n_splits}折交叉验证训练\")\n",
    "    print(f\"{'='*80}\\n\")\n",
    "    \n",
    "    # 创建模型保存目录\n",
    "    if save_model:\n",
    "        os.makedirs(model_dir, exist_ok=True)\n",
    "    \n",
    "    # 初始化\n",
    "    skf = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=random_state)\n",
    "    \n",
    "    oof_predictions = np.zeros((len(X), 10))  # 10个类别的概率\n",
    "    oof_labels = np.zeros(len(X))\n",
    "    \n",
    "    models = []\n",
    "    fold_scores = []\n",
    "    feature_importance_list = []\n",
    "    \n",
    "    # 交叉验证\n",
    "    for fold, (train_idx, valid_idx) in enumerate(skf.split(X, y)):\n",
    "        print(f\"\\n{'='*60}\")\n",
    "        print(f\"Fold {fold + 1}/{n_splits}\")\n",
    "        print(f\"{'='*60}\")\n",
    "        \n",
    "        X_train, X_valid = X.iloc[train_idx], X.iloc[valid_idx]\n",
    "        y_train, y_valid = y.iloc[train_idx], y.iloc[valid_idx]\n",
    "        \n",
    "        print(f\"训练集: {X_train.shape}, 验证集: {X_valid.shape}\")\n",
    "        print(f\"训练集标签分布: {np.bincount(y_train)}\")\n",
    "        \n",
    "        # 训练模型\n",
    "        start_time = time.time()\n",
    "        \n",
    "        if model_type == 'lgb':\n",
    "            model, best_iter = train_lightgbm(X_train, y_train, X_valid, y_valid, params)\n",
    "            valid_pred = model.predict(X_valid, num_iteration=best_iter)\n",
    "            \n",
    "            # 特征重要性\n",
    "            importance = pd.DataFrame({\n",
    "                'feature': X.columns,\n",
    "                'importance': model.feature_importance(importance_type='gain'),\n",
    "                'fold': fold + 1\n",
    "            })\n",
    "            \n",
    "        elif model_type == 'cat':\n",
    "            model = train_catboost(X_train, y_train, X_valid, y_valid, params)\n",
    "            valid_pred_raw = model.predict_proba(X_valid)\n",
    "            \n",
    "            # 处理CatBoost输出可能缺少某些类别的情况\n",
    "            # 创建一个完整的10类概率矩阵\n",
    "            valid_pred = np.zeros((len(X_valid), 10))\n",
    "            # 获取模型预测的类别\n",
    "            model_classes = model.classes_\n",
    "            # 将预测的概率填充到对应的列\n",
    "            for i, class_idx in enumerate(model_classes):\n",
    "                valid_pred[:, class_idx] = valid_pred_raw[:, i]\n",
    "            \n",
    "            # 特征重要性\n",
    "            importance = pd.DataFrame({\n",
    "                'feature': X.columns,\n",
    "                'importance': model.get_feature_importance(),\n",
    "                'fold': fold + 1\n",
    "            })\n",
    "            \n",
    "        elif model_type == 'xgb':\n",
    "            model = train_xgboost(X_train, y_train, X_valid, y_valid, params)\n",
    "            dvalid = xgb.DMatrix(X_valid)\n",
    "            valid_pred = model.predict(dvalid)\n",
    "            \n",
    "            # 特征重要性\n",
    "            importance_dict = model.get_score(importance_type='gain')\n",
    "            importance = pd.DataFrame({\n",
    "                'feature': list(importance_dict.keys()),\n",
    "                'importance': list(importance_dict.values()),\n",
    "                'fold': fold + 1\n",
    "            })\n",
    "        \n",
    "        else:\n",
    "            raise ValueError(f\"不支持的模型类型: {model_type}\")\n",
    "        \n",
    "        training_time = time.time() - start_time\n",
    "        \n",
    "        # 保存验证集预测\n",
    "        oof_predictions[valid_idx] = valid_pred\n",
    "        oof_labels[valid_idx] = y_valid.values\n",
    "        \n",
    "        # 计算得分\n",
    "        valid_pred_labels = np.argmax(valid_pred, axis=1)\n",
    "        fold_score = macro_f1_score(y_valid, valid_pred_labels)\n",
    "        fold_scores.append(fold_score)\n",
    "        \n",
    "        print(f\"\\nFold {fold + 1} Macro-F1: {fold_score:.6f}\")\n",
    "        print(f\"训练耗时: {training_time:.2f}秒\")\n",
    "        \n",
    "        # 保存模型\n",
    "        if save_model:\n",
    "            model_path = os.path.join(model_dir, f'{model_type}_fold{fold+1}.pkl')\n",
    "            \n",
    "            if model_type in ['lgb', 'cat']:\n",
    "                model.save_model(model_path)\n",
    "            else:  # xgb\n",
    "                model.save_model(model_path)\n",
    "            \n",
    "            print(f\"模型已保存: {model_path}\")\n",
    "        \n",
    "        models.append(model)\n",
    "        feature_importance_list.append(importance)\n",
    "        \n",
    "        gc.collect()\n",
    "    \n",
    "    # 计算总体OOF得分\n",
    "    oof_pred_labels = np.argmax(oof_predictions, axis=1)\n",
    "    oof_score = macro_f1_score(oof_labels, oof_pred_labels)\n",
    "    \n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(f\"{model_type.upper()} 交叉验证完成\")\n",
    "    print(f\"{'='*80}\")\n",
    "    print(f\"各折得分: {[f'{score:.6f}' for score in fold_scores]}\")\n",
    "    print(f\"平均得分: {np.mean(fold_scores):.6f} ± {np.std(fold_scores):.6f}\")\n",
    "    print(f\"OOF得分: {oof_score:.6f}\")\n",
    "    \n",
    "    # 合并特征重要性\n",
    "    feature_importance_df = pd.concat(feature_importance_list, ignore_index=True)\n",
    "    \n",
    "    return {\n",
    "        'models': models,\n",
    "        'oof_predictions': oof_predictions,\n",
    "        'oof_labels': oof_labels,\n",
    "        'oof_score': oof_score,\n",
    "        'fold_scores': fold_scores,\n",
    "        'feature_importance': feature_importance_df,\n",
    "        'model_type': model_type\n",
    "    }\n",
    "\n",
    "print(\"交叉验证训练框架定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "758a5ad4",
   "metadata": {},
   "source": [
    "## 4.5 执行模型训练\n",
    "\n",
    "### 4.5.1 训练LightGBM模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "9f4607d3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "================================================================================\n",
      "开始 LGB 模型 5折交叉验证训练\n",
      "================================================================================\n",
      "\n",
      "\n",
      "============================================================\n",
      "Fold 1/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "Training until validation scores don't improve for 100 rounds\n",
      "[100]\ttrain's multi_logloss: 0.176648\ttrain's macro_f1: 0.98172\tvalid's multi_logloss: 0.577729\tvalid's macro_f1: 0.49822\n",
      "Early stopping, best iteration is:\n",
      "[49]\ttrain's multi_logloss: 0.347807\ttrain's macro_f1: 0.88436\tvalid's multi_logloss: 0.611679\tvalid's macro_f1: 0.505808\n",
      "\n",
      "Fold 1 Macro-F1: 0.505808\n",
      "训练耗时: 7.69秒\n",
      "模型已保存: ./model/lgb\\lgb_fold1.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 2/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "Training until validation scores don't improve for 100 rounds\n",
      "[100]\ttrain's multi_logloss: 0.180932\ttrain's macro_f1: 0.979953\tvalid's multi_logloss: 0.574456\tvalid's macro_f1: 0.512419\n",
      "Early stopping, best iteration is:\n",
      "[63]\ttrain's multi_logloss: 0.28363\ttrain's macro_f1: 0.933468\tvalid's multi_logloss: 0.584755\tvalid's macro_f1: 0.523356\n",
      "\n",
      "Fold 2 Macro-F1: 0.523356\n",
      "训练耗时: 8.07秒\n",
      "模型已保存: ./model/lgb\\lgb_fold2.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 3/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 136   58    0 2390  854    0  109  224 1000    9]\n",
      "Training until validation scores don't improve for 100 rounds\n",
      "[100]\ttrain's multi_logloss: 0.180907\ttrain's macro_f1: 0.980958\tvalid's multi_logloss: 0.578523\tvalid's macro_f1: 0.501043\n",
      "Early stopping, best iteration is:\n",
      "[84]\ttrain's multi_logloss: 0.217276\ttrain's macro_f1: 0.960416\tvalid's multi_logloss: 0.5804\tvalid's macro_f1: 0.509676\n",
      "\n",
      "Fold 3 Macro-F1: 0.509676\n",
      "训练耗时: 8.97秒\n",
      "模型已保存: ./model/lgb\\lgb_fold3.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 4/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  109  224 1000    9]\n",
      "Training until validation scores don't improve for 100 rounds\n",
      "[100]\ttrain's multi_logloss: 0.177028\ttrain's macro_f1: 0.980552\tvalid's multi_logloss: 0.605507\tvalid's macro_f1: 0.525495\n",
      "Early stopping, best iteration is:\n",
      "[98]\ttrain's multi_logloss: 0.180767\ttrain's macro_f1: 0.980084\tvalid's multi_logloss: 0.605003\tvalid's macro_f1: 0.521454\n",
      "\n",
      "Fold 4 Macro-F1: 0.521454\n",
      "训练耗时: 9.71秒\n",
      "模型已保存: ./model/lgb\\lgb_fold4.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 5/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  110  224 1000    8]\n",
      "Training until validation scores don't improve for 100 rounds\n",
      "[100]\ttrain's multi_logloss: 0.17689\ttrain's macro_f1: 0.982531\tvalid's multi_logloss: 0.617598\tvalid's macro_f1: 0.497354\n",
      "Early stopping, best iteration is:\n",
      "[74]\ttrain's multi_logloss: 0.241101\ttrain's macro_f1: 0.9513\tvalid's multi_logloss: 0.61616\tvalid's macro_f1: 0.509489\n",
      "\n",
      "Fold 5 Macro-F1: 0.509489\n",
      "训练耗时: 8.54秒\n",
      "模型已保存: ./model/lgb\\lgb_fold5.pkl\n",
      "\n",
      "================================================================================\n",
      "LGB 交叉验证完成\n",
      "================================================================================\n",
      "各折得分: ['0.505808', '0.523356', '0.509676', '0.521454', '0.509489']\n",
      "平均得分: 0.513957 ± 0.007061\n",
      "OOF得分: 0.514836\n",
      "\n",
      "LightGBM OOF Score: 0.514836\n"
     ]
    }
   ],
   "source": [
    "# LightGBM参数配置\n",
    "lgb_params = {\n",
    "    'objective': 'multiclass',\n",
    "    'num_class': 10,\n",
    "    'metric': 'multi_logloss',\n",
    "    'boosting_type': 'gbdt',\n",
    "    'num_leaves': 31,\n",
    "    'max_depth': -1,\n",
    "    'learning_rate': 0.03,\n",
    "    'feature_fraction': 0.8,\n",
    "    'bagging_fraction': 0.8,\n",
    "    'bagging_freq': 5,\n",
    "    'min_child_samples': 20,\n",
    "    'min_child_weight': 0.001,\n",
    "    'reg_alpha': 0.1,\n",
    "    'reg_lambda': 0.1,\n",
    "    'seed': 2024,\n",
    "    'verbose': -1,\n",
    "    'n_jobs': -1\n",
    "}\n",
    "\n",
    "# 训练LightGBM\n",
    "lgb_results = cross_validation_train(\n",
    "    X, y, \n",
    "    model_type='lgb',\n",
    "    n_splits=5,\n",
    "    random_state=2024,\n",
    "    params=lgb_params,\n",
    "    save_model=True,\n",
    "    model_dir='./model/lgb'\n",
    ")\n",
    "\n",
    "print(f\"\\nLightGBM OOF Score: {lgb_results['oof_score']:.6f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd61a0ec",
   "metadata": {},
   "source": [
    "### 4.5.2 训练CatBoost模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "74480184",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "================================================================================\n",
      "开始 CAT 模型 5折交叉验证训练\n",
      "================================================================================\n",
      "\n",
      "\n",
      "============================================================\n",
      "Fold 1/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "0:\tlearn: 0.3074420\ttest: 0.3142422\tbest: 0.3142422 (0)\ttotal: 219ms\tremaining: 3m 38s\n",
      "100:\tlearn: 0.4032513\ttest: 0.4054959\tbest: 0.4073932 (99)\ttotal: 19.6s\tremaining: 2m 54s\n",
      "200:\tlearn: 0.5046828\ttest: 0.4485777\tbest: 0.4485777 (200)\ttotal: 39s\tremaining: 2m 35s\n",
      "300:\tlearn: 0.5810877\ttest: 0.4595566\tbest: 0.4604077 (281)\ttotal: 58.4s\tremaining: 2m 15s\n",
      "400:\tlearn: 0.6011437\ttest: 0.4756377\tbest: 0.4756377 (400)\ttotal: 1m 17s\tremaining: 1m 56s\n",
      "500:\tlearn: 0.6144898\ttest: 0.4855816\tbest: 0.4864374 (470)\ttotal: 1m 37s\tremaining: 1m 36s\n",
      "600:\tlearn: 0.6265321\ttest: 0.4972726\tbest: 0.4978441 (589)\ttotal: 1m 56s\tremaining: 1m 17s\n",
      "Stopped by overfitting detector  (100 iterations wait)\n",
      "\n",
      "bestTest = 0.4978441336\n",
      "bestIteration = 589\n",
      "\n",
      "Shrink model to first 590 iterations.\n",
      "\n",
      "Fold 1 Macro-F1: 0.497844\n",
      "训练耗时: 134.35秒\n",
      "模型已保存: ./model/cat\\cat_fold1.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 2/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "0:\tlearn: 0.3731401\ttest: 0.3829850\tbest: 0.3829850 (0)\ttotal: 235ms\tremaining: 3m 54s\n",
      "100:\tlearn: 0.4195957\ttest: 0.3946744\tbest: 0.3965245 (96)\ttotal: 20.1s\tremaining: 2m 59s\n",
      "200:\tlearn: 0.4940727\ttest: 0.4239204\tbest: 0.4239204 (199)\ttotal: 39.8s\tremaining: 2m 38s\n",
      "300:\tlearn: 0.5466038\ttest: 0.4547864\tbest: 0.4547864 (300)\ttotal: 59.2s\tremaining: 2m 17s\n",
      "400:\tlearn: 0.5800061\ttest: 0.4754858\tbest: 0.4754858 (399)\ttotal: 1m 18s\tremaining: 1m 57s\n",
      "500:\tlearn: 0.6248770\ttest: 0.4837282\tbest: 0.4943605 (488)\ttotal: 1m 37s\tremaining: 1m 37s\n",
      "600:\tlearn: 0.6377829\ttest: 0.4954581\tbest: 0.5007339 (585)\ttotal: 1m 57s\tremaining: 1m 17s\n",
      "700:\tlearn: 0.6485505\ttest: 0.5019237\tbest: 0.5042454 (628)\ttotal: 2m 16s\tremaining: 58.2s\n",
      "Stopped by overfitting detector  (100 iterations wait)\n",
      "\n",
      "bestTest = 0.5042453935\n",
      "bestIteration = 628\n",
      "\n",
      "Shrink model to first 629 iterations.\n",
      "\n",
      "Fold 2 Macro-F1: 0.504245\n",
      "训练耗时: 142.32秒\n",
      "模型已保存: ./model/cat\\cat_fold2.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 3/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 136   58    0 2390  854    0  109  224 1000    9]\n",
      "0:\tlearn: 0.2929537\ttest: 0.2834005\tbest: 0.2834005 (0)\ttotal: 235ms\tremaining: 3m 54s\n",
      "100:\tlearn: 0.3991927\ttest: 0.3934404\tbest: 0.3956098 (69)\ttotal: 19.9s\tremaining: 2m 57s\n",
      "200:\tlearn: 0.5165170\ttest: 0.4259432\tbest: 0.4285388 (173)\ttotal: 39.4s\tremaining: 2m 36s\n",
      "300:\tlearn: 0.5704505\ttest: 0.4553753\tbest: 0.4553753 (300)\ttotal: 58.9s\tremaining: 2m 16s\n",
      "400:\tlearn: 0.6024089\ttest: 0.4622439\tbest: 0.4687657 (384)\ttotal: 1m 18s\tremaining: 1m 57s\n",
      "500:\tlearn: 0.6153941\ttest: 0.4727601\tbest: 0.4738396 (442)\ttotal: 1m 37s\tremaining: 1m 37s\n",
      "600:\tlearn: 0.6240304\ttest: 0.4871720\tbest: 0.4882599 (556)\ttotal: 1m 57s\tremaining: 1m 17s\n",
      "700:\tlearn: 0.6597453\ttest: 0.4906194\tbest: 0.4923114 (646)\ttotal: 2m 16s\tremaining: 58.3s\n",
      "Stopped by overfitting detector  (100 iterations wait)\n",
      "\n",
      "bestTest = 0.4923113691\n",
      "bestIteration = 646\n",
      "\n",
      "Shrink model to first 647 iterations.\n",
      "\n",
      "Fold 3 Macro-F1: 0.492311\n",
      "训练耗时: 145.98秒\n",
      "模型已保存: ./model/cat\\cat_fold3.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 4/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  109  224 1000    9]\n",
      "0:\tlearn: 0.3651236\ttest: 0.3579146\tbest: 0.3579146 (0)\ttotal: 209ms\tremaining: 3m 28s\n",
      "100:\tlearn: 0.4301368\ttest: 0.3963032\tbest: 0.3965710 (95)\ttotal: 19.7s\tremaining: 2m 55s\n",
      "200:\tlearn: 0.4957791\ttest: 0.4372905\tbest: 0.4449068 (184)\ttotal: 39.2s\tremaining: 2m 35s\n",
      "300:\tlearn: 0.5495390\ttest: 0.4621943\tbest: 0.4630656 (260)\ttotal: 58.8s\tremaining: 2m 16s\n",
      "400:\tlearn: 0.5797150\ttest: 0.4760556\tbest: 0.4760556 (400)\ttotal: 1m 18s\tremaining: 1m 56s\n",
      "500:\tlearn: 0.6005360\ttest: 0.4913024\tbest: 0.4913024 (498)\ttotal: 1m 37s\tremaining: 1m 37s\n",
      "600:\tlearn: 0.6177819\ttest: 0.5010610\tbest: 0.5010610 (598)\ttotal: 1m 57s\tremaining: 1m 17s\n",
      "700:\tlearn: 0.6570573\ttest: 0.5095418\tbest: 0.5095418 (700)\ttotal: 2m 16s\tremaining: 58.4s\n",
      "800:\tlearn: 0.6972626\ttest: 0.5127076\tbest: 0.5148793 (764)\ttotal: 2m 36s\tremaining: 38.9s\n",
      "Stopped by overfitting detector  (100 iterations wait)\n",
      "\n",
      "bestTest = 0.5148792833\n",
      "bestIteration = 764\n",
      "\n",
      "Shrink model to first 765 iterations.\n",
      "\n",
      "Fold 4 Macro-F1: 0.514879\n",
      "训练耗时: 169.31秒\n",
      "模型已保存: ./model/cat\\cat_fold4.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 5/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  110  224 1000    8]\n",
      "0:\tlearn: 0.3166016\ttest: 0.3087130\tbest: 0.3087130 (0)\ttotal: 235ms\tremaining: 3m 54s\n",
      "100:\tlearn: 0.4088723\ttest: 0.4037683\tbest: 0.4037683 (100)\ttotal: 19.7s\tremaining: 2m 55s\n",
      "200:\tlearn: 0.5013703\ttest: 0.4381405\tbest: 0.4384833 (195)\ttotal: 39.1s\tremaining: 2m 35s\n",
      "300:\tlearn: 0.5621952\ttest: 0.4822312\tbest: 0.4832086 (284)\ttotal: 58.6s\tremaining: 2m 16s\n",
      "400:\tlearn: 0.5963827\ttest: 0.4926639\tbest: 0.4933770 (395)\ttotal: 1m 18s\tremaining: 1m 56s\n",
      "Stopped by overfitting detector  (100 iterations wait)\n",
      "\n",
      "bestTest = 0.4933770397\n",
      "bestIteration = 395\n",
      "\n",
      "Shrink model to first 396 iterations.\n",
      "\n",
      "Fold 5 Macro-F1: 0.493377\n",
      "训练耗时: 96.86秒\n",
      "模型已保存: ./model/cat\\cat_fold5.pkl\n",
      "\n",
      "================================================================================\n",
      "CAT 交叉验证完成\n",
      "================================================================================\n",
      "各折得分: ['0.497844', '0.504245', '0.492311', '0.514879', '0.493377']\n",
      "平均得分: 0.500531 ± 0.008314\n",
      "OOF得分: 0.501400\n",
      "\n",
      "CatBoost OOF Score: 0.501400\n"
     ]
    }
   ],
   "source": [
    "# CatBoost参数配置\n",
    "cat_params = {\n",
    "    'iterations': 1000,\n",
    "    'learning_rate': 0.03,\n",
    "    'depth': 6,\n",
    "    'l2_leaf_reg': 3,\n",
    "    'loss_function': 'MultiClass',\n",
    "    'eval_metric': 'TotalF1:average=Macro',\n",
    "    'random_seed': 2024,\n",
    "    'od_type': 'Iter',\n",
    "    'od_wait': 100,\n",
    "    'verbose': 100,\n",
    "    'task_type': 'CPU',\n",
    "    'thread_count': -1\n",
    "}\n",
    "\n",
    "# 训练CatBoost\n",
    "cat_results = cross_validation_train(\n",
    "    X, y,\n",
    "    model_type='cat',\n",
    "    n_splits=5,\n",
    "    random_state=2024,\n",
    "    params=cat_params,\n",
    "    save_model=True,\n",
    "    model_dir='./model/cat'\n",
    ")\n",
    "\n",
    "print(f\"\\nCatBoost OOF Score: {cat_results['oof_score']:.6f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0deafc1",
   "metadata": {},
   "source": [
    "### 4.5.3 训练XGBoost模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "b90c4f51",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "================================================================================\n",
      "开始 XGB 模型 5折交叉验证训练\n",
      "================================================================================\n",
      "\n",
      "\n",
      "============================================================\n",
      "Fold 1/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "[0]\ttrain-mlogloss:2.20226\tvalid-mlogloss:2.20737\n",
      "[100]\ttrain-mlogloss:0.40090\tvalid-mlogloss:0.63646\n",
      "[200]\ttrain-mlogloss:0.20403\tvalid-mlogloss:0.56684\n",
      "[300]\ttrain-mlogloss:0.13232\tvalid-mlogloss:0.57037\n",
      "[331]\ttrain-mlogloss:0.11833\tvalid-mlogloss:0.57520\n",
      "\n",
      "Fold 1 Macro-F1: 0.500040\n",
      "训练耗时: 31.78秒\n",
      "模型已保存: ./model/xgb\\xgb_fold1.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 2/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   59    0 2389  854    0  110  224 1000    9]\n",
      "[0]\ttrain-mlogloss:2.20056\tvalid-mlogloss:2.20746\n",
      "[100]\ttrain-mlogloss:0.40338\tvalid-mlogloss:0.63448\n",
      "[200]\ttrain-mlogloss:0.20816\tvalid-mlogloss:0.56320\n",
      "[300]\ttrain-mlogloss:0.13481\tvalid-mlogloss:0.56724\n",
      "[333]\ttrain-mlogloss:0.11857\tvalid-mlogloss:0.57303\n",
      "\n",
      "Fold 2 Macro-F1: 0.509877\n",
      "训练耗时: 32.66秒\n",
      "模型已保存: ./model/xgb\\xgb_fold2.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 3/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 136   58    0 2390  854    0  109  224 1000    9]\n",
      "[0]\ttrain-mlogloss:2.20288\tvalid-mlogloss:2.20789\n",
      "[100]\ttrain-mlogloss:0.39831\tvalid-mlogloss:0.63481\n",
      "[200]\ttrain-mlogloss:0.20248\tvalid-mlogloss:0.56284\n",
      "[300]\ttrain-mlogloss:0.13110\tvalid-mlogloss:0.56614\n",
      "[330]\ttrain-mlogloss:0.11746\tvalid-mlogloss:0.57039\n",
      "\n",
      "Fold 3 Macro-F1: 0.511464\n",
      "训练耗时: 31.49秒\n",
      "模型已保存: ./model/xgb\\xgb_fold3.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 4/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  109  224 1000    9]\n",
      "[0]\ttrain-mlogloss:2.20208\tvalid-mlogloss:2.21039\n",
      "[100]\ttrain-mlogloss:0.39516\tvalid-mlogloss:0.66937\n",
      "[200]\ttrain-mlogloss:0.20252\tvalid-mlogloss:0.59950\n",
      "[300]\ttrain-mlogloss:0.13058\tvalid-mlogloss:0.60666\n",
      "[305]\ttrain-mlogloss:0.12818\tvalid-mlogloss:0.60763\n",
      "\n",
      "Fold 4 Macro-F1: 0.527090\n",
      "训练耗时: 30.23秒\n",
      "模型已保存: ./model/xgb\\xgb_fold4.pkl\n",
      "\n",
      "============================================================\n",
      "Fold 5/5\n",
      "============================================================\n",
      "训练集: (4780, 1001), 验证集: (1195, 1001)\n",
      "训练集标签分布: [ 135   58    0 2390  855    0  110  224 1000    8]\n",
      "[0]\ttrain-mlogloss:2.20171\tvalid-mlogloss:2.20710\n",
      "[100]\ttrain-mlogloss:0.39444\tvalid-mlogloss:0.65790\n",
      "[200]\ttrain-mlogloss:0.20149\tvalid-mlogloss:0.59585\n",
      "[300]\ttrain-mlogloss:0.13006\tvalid-mlogloss:0.60465\n",
      "\n",
      "Fold 5 Macro-F1: 0.538564\n",
      "训练耗时: 28.31秒\n",
      "模型已保存: ./model/xgb\\xgb_fold5.pkl\n",
      "\n",
      "================================================================================\n",
      "XGB 交叉验证完成\n",
      "================================================================================\n",
      "各折得分: ['0.500040', '0.509877', '0.511464', '0.527090', '0.538564']\n",
      "平均得分: 0.517407 ± 0.013675\n",
      "OOF得分: 0.519839\n",
      "\n",
      "XGBoost OOF Score: 0.519839\n"
     ]
    }
   ],
   "source": [
    "# XGBoost参数配置\n",
    "xgb_params = {\n",
    "    'objective': 'multi:softprob',\n",
    "    'num_class': 10,\n",
    "    'eval_metric': 'mlogloss',\n",
    "    'max_depth': 6,\n",
    "    'learning_rate': 0.03,\n",
    "    'subsample': 0.8,\n",
    "    'colsample_bytree': 0.8,\n",
    "    'min_child_weight': 1,\n",
    "    'reg_alpha': 0.1,\n",
    "    'reg_lambda': 0.1,\n",
    "    'seed': 2024,\n",
    "    'n_jobs': -1,\n",
    "    'tree_method': 'hist'\n",
    "}\n",
    "\n",
    "# 训练XGBoost\n",
    "xgb_results = cross_validation_train(\n",
    "    X, y,\n",
    "    model_type='xgb',\n",
    "    n_splits=5,\n",
    "    random_state=2024,\n",
    "    params=xgb_params,\n",
    "    save_model=True,\n",
    "    model_dir='./model/xgb'\n",
    ")\n",
    "\n",
    "print(f\"\\nXGBoost OOF Score: {xgb_results['oof_score']:.6f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd09b34c",
   "metadata": {},
   "source": [
    "# 5. 模型融合\n",
    "\n",
    "## 5.1 加权融合策略"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "b26bc5f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型融合函数定义完成\n"
     ]
    }
   ],
   "source": [
    "def weighted_ensemble(predictions_list, weights=None, method='weighted_average'):\n",
    "    \"\"\"\n",
    "    模型加权融合\n",
    "    \n",
    "    参数:\n",
    "    - predictions_list: 预测结果列表 [(name, predictions), ...]\n",
    "    - weights: 权重列表\n",
    "    - method: 融合方法 ('weighted_average', 'rank_average', 'power_average')\n",
    "    \n",
    "    返回:\n",
    "    - ensemble_predictions: 融合后的预测\n",
    "    - best_weights: 最佳权重\n",
    "    \"\"\"\n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(f\"模型融合 - 方法: {method}\")\n",
    "    print(f\"{'='*80}\\n\")\n",
    "    \n",
    "    n_models = len(predictions_list)\n",
    "    \n",
    "    # 如果没有提供权重,使用网格搜索找最优权重\n",
    "    if weights is None:\n",
    "        print(\"开始网格搜索最优权重...\")\n",
    "        best_score = -np.inf\n",
    "        best_weights = None\n",
    "        \n",
    "        # 生成权重组合\n",
    "        from itertools import product\n",
    "        weight_range = np.arange(0, 1.1, 0.1)\n",
    "        \n",
    "        if n_models == 2:\n",
    "            weight_combinations = [(w1, 1-w1) for w1 in weight_range]\n",
    "        elif n_models == 3:\n",
    "            weight_combinations = [\n",
    "                (w1, w2, 1-w1-w2) \n",
    "                for w1, w2 in product(weight_range, repeat=2)\n",
    "                if w1 + w2 <= 1\n",
    "            ]\n",
    "        else:\n",
    "            # 对于更多模型,使用均等权重或简化搜索\n",
    "            weight_combinations = [tuple([1/n_models] * n_models)]\n",
    "        \n",
    "        # 获取真实标签\n",
    "        y_true = predictions_list[0][2]  # (name, predictions, labels)\n",
    "        \n",
    "        for weights_combo in weight_combinations:\n",
    "            # 计算加权平均\n",
    "            ensemble_pred = sum(w * pred[1] for w, pred in zip(weights_combo, predictions_list))\n",
    "            ensemble_labels = np.argmax(ensemble_pred, axis=1)\n",
    "            score = macro_f1_score(y_true, ensemble_labels)\n",
    "            \n",
    "            if score > best_score:\n",
    "                best_score = score\n",
    "                best_weights = weights_combo\n",
    "        \n",
    "        print(f\"最佳权重: {[f'{w:.2f}' for w in best_weights]}\")\n",
    "        print(f\"最佳得分: {best_score:.6f}\")\n",
    "        weights = best_weights\n",
    "    \n",
    "    # 使用最佳权重进行融合\n",
    "    if method == 'weighted_average':\n",
    "        ensemble_pred = sum(w * pred[1] for w, pred in zip(weights, predictions_list))\n",
    "    \n",
    "    elif method == 'rank_average':\n",
    "        # 排名平均\n",
    "        ranked_preds = []\n",
    "        for _, pred, _ in predictions_list:\n",
    "            ranks = np.argsort(np.argsort(-pred, axis=1), axis=1)\n",
    "            ranked_preds.append(ranks)\n",
    "        ensemble_pred = np.mean(ranked_preds, axis=0)\n",
    "    \n",
    "    elif method == 'power_average':\n",
    "        # 幂平均\n",
    "        power = 2\n",
    "        ensemble_pred = np.power(\n",
    "            sum(w * np.power(pred[1], power) for w, pred in zip(weights, predictions_list)),\n",
    "            1/power\n",
    "        )\n",
    "    \n",
    "    return ensemble_pred, weights\n",
    "\n",
    "print(\"模型融合函数定义完成\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a85dae83",
   "metadata": {},
   "source": [
    "## 5.2 执行模型融合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "f9daab60",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "================================================================================\n",
      "模型融合 - 方法: weighted_average\n",
      "================================================================================\n",
      "\n",
      "开始网格搜索最优权重...\n",
      "最佳权重: ['0.00', '0.20', '0.80']\n",
      "最佳得分: 0.522716\n",
      "\n",
      "================================================================================\n",
      "融合结果汇总\n",
      "================================================================================\n",
      "LightGBM OOF Score: 0.514836\n",
      "CatBoost OOF Score: 0.501400\n",
      "XGBoost OOF Score: 0.519839\n",
      "\n",
      "融合模型 OOF Score: 0.522716\n",
      "最佳权重: LGB=0.00, CAT=0.20, XGB=0.80\n",
      "\n",
      "融合配置已保存至 ./model/ensemble_config.pkl\n"
     ]
    }
   ],
   "source": [
    "# 准备融合数据\n",
    "predictions_for_ensemble = [\n",
    "    ('LightGBM', lgb_results['oof_predictions'], lgb_results['oof_labels']),\n",
    "    ('CatBoost', cat_results['oof_predictions'], cat_results['oof_labels']),\n",
    "    ('XGBoost', xgb_results['oof_predictions'], xgb_results['oof_labels'])\n",
    "]\n",
    "\n",
    "# 执行加权融合\n",
    "ensemble_pred, best_weights = weighted_ensemble(\n",
    "    predictions_for_ensemble,\n",
    "    method='weighted_average'\n",
    ")\n",
    "\n",
    "# 计算融合后的得分\n",
    "ensemble_labels = np.argmax(ensemble_pred, axis=1)\n",
    "ensemble_score = macro_f1_score(y, ensemble_labels)\n",
    "\n",
    "print(f\"\\n{'='*80}\")\n",
    "print(\"融合结果汇总\")\n",
    "print(f\"{'='*80}\")\n",
    "print(f\"LightGBM OOF Score: {lgb_results['oof_score']:.6f}\")\n",
    "print(f\"CatBoost OOF Score: {cat_results['oof_score']:.6f}\")\n",
    "print(f\"XGBoost OOF Score: {xgb_results['oof_score']:.6f}\")\n",
    "print(f\"\\n融合模型 OOF Score: {ensemble_score:.6f}\")\n",
    "print(f\"最佳权重: LGB={best_weights[0]:.2f}, CAT={best_weights[1]:.2f}, XGB={best_weights[2]:.2f}\")\n",
    "\n",
    "# 保存融合权重\n",
    "ensemble_config = {\n",
    "    'weights': {\n",
    "        'lightgbm': best_weights[0],\n",
    "        'catboost': best_weights[1],\n",
    "        'xgboost': best_weights[2]\n",
    "    },\n",
    "    'oof_score': ensemble_score,\n",
    "    'individual_scores': {\n",
    "        'lightgbm': lgb_results['oof_score'],\n",
    "        'catboost': cat_results['oof_score'],\n",
    "        'xgboost': xgb_results['oof_score']\n",
    "    }\n",
    "}\n",
    "\n",
    "with open('./model/ensemble_config.pkl', 'wb') as f:\n",
    "    pickle.dump(ensemble_config, f)\n",
    "\n",
    "print(\"\\n融合配置已保存至 ./model/ensemble_config.pkl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b6c88eeb",
   "metadata": {},
   "source": [
    "# 6. 特征重要性分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "d12ad3f3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LightGBM特征重要性 (Top 30):\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAMWCAYAAADLc44dAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QeQFOX69uGHnHNWEFByEFAxoCIISDJxyElRRDGjIohHAVFhFQNiVpIEUZQgQUHhgIKgCAiKBCNBsuQk+av7/VfP1zM7szsbYFj2d1V1LdPd0/12z3jqzF3P+3SGU6dOnTIAAAAAAADgDMt4pk8IAAAAAAAACMEUAAAAAAAAYoJgCgAAAAAAADFBMAUAAAAAAICYIJgCAAAAAABATBBMAQAAAAAAICYIpgAAAAAAABATBFMAAAAAAACICYIpAAAAAAAAxATBFAAAwFksQ4YMgWXUqFEpPl7//v0DxytTpkyqjBEAACC5CKYAAADOkHnz5qV60BSrsa9bty7B/Q8cOGBvvfWW3XTTTVaqVCnLmTOnZc2a1YoWLWpXXnmlPfjggzZz5kw7ceJE0Pv85/CWjBkzWq5cuax8+fLWvn17mz17dqLj03LzzTeHHdusWbPi7dulS5eo7sO+fftsz549CS7aR06ePJnovloOHTrk9j969GhU+2s/0fui2V/jSOrYIwl3nxNbzpYAVN8bfc41atSwYsWKWZYsWdz3sly5cu57pWuL5Ndff7WuXbu6a8mWLZsVLlzYGjVqZBMmTDij1wAA56LMsR4AAAAAIhs8eHDg37Vr104Tt+qzzz6zu+66y/75559423bs2OGW77//3t544w1btGiRC6oScurUKRfC/P7772756KOP7M0337T77rsvwffNmDHD/vzzT7vwwguD1r/22mvJvDKziy++2NavX5/gPqVLl3bB3YYNG6xs2bKJHvP22293IeWHH35od9xxR6L7jxw50gUsuv4PPvgg0f3/+usvF6gkZeznoilTpsS7X8ePH7c//vjDLfpeDRkyxB5++OGgfT7//HNr2bKl/fvvv4F1O3fudEGXFm3XZ6IQDgCQdARTAAAAZ7GePXtaWqIKknbt2rkwyXPFFVfYddddZwUKFLC9e/faypUr7euvv7b9+/cneKzLLrvM2rZt646lsGT48OF25MgRt+3pp5+2e+65xzJlyhTx/aoUUvj1yiuvBFW+qFIrJRIK05YsWWKtWrUKvFZ1jT/QCPXSSy+5++Fp3LhxguO78cYbg14PGjTInnjiiYj7586dO9ljD+eiiy4KCkvlyy+/tK+++irw+sknn3SftSdfvnx2NtBnoWuvVauWq5hSkLR8+XIXWHnfV32vFPipmko2bdrkqqm8z7BKlSru+71q1SoXZInCLoXG999/fwyvDgDSLoIpAACAs5i/CsOrlPGoiujZZ5+1cePG2fbt211ooClyCjf8VUJz5861evXqhT3+wYMH7fnnn7fx48fb5s2b7fzzz3fVTn369AmcO1wliL8SyKv4UYVUt27dAj/ys2fP7n6833LLLfHer4Bp4sSJVqRIkYjXXrVq1aBgTlP6FDTJrl27XOVV8eLFw75X+yqYGjFihLtHmgoor7/+emB8CrVCpxIiYZqWGRqWatqmP5jSdyB0+p4CHlUjKXRTBZcqlfTZXXPNNfbQQw/Z5ZdfHq8X2jPPPBOo4lKA1K9fP/ed0eeu77oCJIVB0VYqvfzyy2HXa7zDhg1z/1ZYqu+Wgiuvus6b3pgnTx6bP3++FSxYMPAdU5WbDBw40Lp3755gUAoACI9gCgAAIA06duyYNWnSxP1Q9qiK495773V9naKhYKtu3bq2bNmywDqFBv/9739dhciAAQOSNCZVNPl7FCkQChdKedUrHTp0iOq4CpI0LU7VPv73+6tyQqm/lCphVKGlihaFGBqbN5VLVTMKIBKb2oaU++abb+zWW2+13bt3B63XvdeiUFRVWI8++mjE7+m1114bVFm2evVqF8KqAm7o0KHJGpdC2RUrVrjxeRSUqg+aZ+rUqYF/K9z1QinR9D4vmFKoq4ozVQcCAJKG5ucAAABpkCo5/KGU+gdpGpICmWnTpkV1DFWeqBLltttuc9PB1NDZf3yvybZCA1WD+Gm6ltZr0dQmmTNnTmC7qljuvPPOFF2jQiSv+bkqcJYuXRrY1qNHDxdORdKxY8fA9XhVVqo486YPqkoHp58aqv/nP/8JhFI5cuRwIaG+b6qEElW2qQpL0zsjfU9/++039x3U+0qWLBnYpgq4SO+LRFVa+l5pmuPVV1/twi2vwu/tt98OVGCpqs/bJqG9ykJf//TTT0kaBwDg/xBMAQAApEHe1CNRaPPdd9+5Cic1HtfUumip/5ICIPUq8h9T1UVr1651/1ZooF5PodOftF6LKre86Vr+yhN/dYkqsMI9sS3SFMOEqM9SYtVcChnuvvvuQHWNnsTnBVQam/oG4fTTFE81CvdoKp4a1+v7tnjx4kAPLFXFvfrqqxGPoymZCo30PgWyXg8oef/991M8Tn0nVGGnKiiPwjR/r7S8efMGvUdT+/z81wkAiB7BFAAAQBqjnj5eaCStW7d2lSieaJ7sJuqHowbinooVKwZtD516lRSp8YQyNT/3qrL0pDRv6t706dPddEX1KUqIKnMyZ/6/zhVdu3Z1T/QTBVYJVVsh9finXyr8adq0aeC1psz5X/v39VMI5Q9GFcSq6snjr6SLxgMPPOC+U6q+UlN+rypLY4mLi4v4Pn9IFe41ACB56DEFAACQBqdH+YU2AI/UEDyUGjyrssgTGtZoilVSqHG6+lx5P/QVbHlhksIF72lumib4999/J3q80Obn6lNUv379wJPgJk2aZG3atElwPKqA+fjjjwPVXBqHAiucGerj5fEaivv510UKQgsVKhSvqbj/faH/PSTGm3rq74XWt29fFzRpiqoqAGvWrOm+uwpYvQAq9CmSoa/9U2EBANGjYgoAACCNyZcvX9BrPZHPb+vWrVEdxz8dKjWqnBo0aBAUao0ePTrwWsGCN/UvXEARjdAnty1cuDDR96jSyk9B1XnnnZes8yPp/NM5t23bFm+7f12kZvaaIhf69ET/+/Lnz5+ij8bfoF8hlNezSkGtv4rwzz//DHrfH3/8EfS6evXqKRoHAKRXBFMAAABpjHrb+H8wq3LIa1TuNflObaEhlp6UFkrNzv19d/R0P39D9JT64Ycfgl6HhhXhXHXVVVa7du3Aa5qen1l16tQJ/FtVdF988UVQoOp/7d839AmUqnrzrFu3zhYsWBB4femllyY6DgVZ6sMWzowZMyIGtHqYgGfevHlBFWCffPJJUHWepp4CAJKOqXwAAAAx8swzzwQacvuposf/mPpwvObjoieWKYBRU/AVK1a4BuipTT+8/e6//35r3Lix6+GkH+8VKlRwPYTeeecd69Spk6s8OXjwoDVs2NCuv/56N75cuXK5KXwabzR++eUXe+mll9y/N2/e7Jq0++mJatFQ5daaNWtcuKZx4MxRI35NlfMag6tiTQGmGol/+OGHrl+aFwbpSYuR6D1qeq7qqLFjx7qwynPXXXclOo4tW7a4z75SpUqu4X6pUqVcuKoG7LNnzw6q7POa+XtBpr7TehiApu5de+21biqgpqxOmDAhsF+fPn3iTTcEAESHYAoAACBGVPmhJdQ///yT6Hv1g1kBlH6sy7Jly9wiauLsr0TJmDHlRfJqOF2rVi378ccfA9UjWrxtCqakQ4cOLqxSg/G9e/e6df/73//cEql/UCRLlixxSzgKvNT0PRoKI7TgzFOQpIo+TZdTL6jDhw+7p/L56fv54osvBhqRh9LUz5IlS7qAKJT6hSXlyY4KKLWEo2BJQbH3XfYCWQVoCtSOHDniAin1owoN3+hbBgDJx1Q+AACANEjVPzNnzrTevXu7H+1Zs2Z10/teffVVe+qpp4L2TWkPHo8ChhYtWri+QQn1o1JD8r/++stVOylAUrCg8alnj6rBFCToiWgK1SZOnBjVuRV26Slu6mP17rvvuuCNCpW0oW7durZy5Up77LHHXEP7nDlzuu/DBRdcYB07dnS9wrQtEjXonzt3rj3yyCNB33U10Q9XcRiOwtPnn3/ehbb6d+7cud33R/9taCqgjq0xdu/ePd57mzdvbj/99JN72qUqrXR+9cNSJaCmGI4aNSpVnkIJAOkVFVMAAABniAKZpD5iPqH99WNYj7cPfcS9/0l2+gHurxbq37+/W8LRD/aEzqftCqeioR/uChsSChzCSer9Scm9DVethqRL6DvlrzxSUOlNzUwq9S575ZVX3JIcCqD0xL3kUhXViBEjkv1+AEBkBFMAAABpVP369e3CCy90fW9UybF7925XRTV+/PjAPvfcc4+r8AAAADgbEUwBAACkUf/++68LofxBVOgUJE1fQupKrIF66dKlA/9WX6LEpnmpR5Fn1qxZie7fqlWroKbbWk7H2AEAOBMynEpuvTQAAABiatiwYfbpp5+63jh66pn+b52ejKfH1uvJeGrYjNSlp7OdPHkywX3UzFtPndN+2j8xqmhT36WjR4+6J8UlxuvRpH31nsRoLBpTUsYea5oaqKdWemEZ0y4B4NxFMAUAAAAAAICY4Kl8AAAAAAAAiAmCKQAAAAAAAMQEzc8BxIz6XGzevNk9AjqxRq8AAAAAgNhTT8v9+/fbeeed53oTphTBFICYUSilx5sDAAAAANKWjRs3WsmSJVN8HIIpADGjSinvf9DOhicAAQAAAAASpqe8qsDA+z2XUgRTAGLGm76nUIpgCgAAAADSjtRqx0LzcwAAAAAAAMQEwRQAAAAAAABigmAKAAAAAAAAMUEwBQAAAAAAgJggmAIAAAAAAEBMEEwBAAAAAAAgJgimAAAAAAAAEBMEUwAAAAAAAIgJgikAAAAAAADEBMEUAAAAAAAAYoJgCgAAAAAAADFBMAUAAAAAAICYIJgCAAAAAABATBBMAQAAAAAAICYIpgAAAAAAABATBFMAAAAAAACICYIpAAAAAAAAxATBFAAAAAAAAGKCYAoAAAAAAAAxQTAFAAAAAACAmCCYAgAAAAAAQEwQTAEAAAAAACAmCKYAAAAAAAAQEwRTAAAAAAAAiAmCKQAAAAAAAMQEwRQAAAAAAABigmAKAAAAAAAAMUEwBQAAAAAAgJggmAIAAAAAAEBMZI7NaQHg/6vWb5ZlzJaTWwIAAAAgXVsX19zSGyqmAAAAAAAAEBMEUwAAAAAAAIgJgikAAAAAAADEBMEUzjpdunSxDBkyWFxcXND6KVOmuPXe9khLmTJl3P716tULrMuePbtVqFDBBg0aZKdOnQocc926dW778uXLkzXWo0eP2osvvmg1atSwnDlzWuHChe3qq6+2kSNH2rFjxwLj6NGjR7z3jho1yvLnzx94fejQIevTp49ddNFFbrxFihSx6667zj777LPAOBNadLxoVapUybJly2Zbt24Nu33u3Ll24403ujFoLBpT27Zt7ZtvvgnsM2/evIhjiXRcAAAAAAD8CKZwVlIY8sILL9ju3bvjbXvttddsy5YtgUUUBHmvf/jhh8C+3bp1c+vWrl3rQp++ffvaO++8kypjVCjVuHFjF6DdfffdtnDhQlu8eLHdf//99vrrr9svv/ySpON1797dJk2a5N67Zs0amzlzprVq1cp27txppUqVCrrmxx57zKpWrRq0TsFRNBYsWGCHDx92x/7ggw/ibX/rrbesQYMGVqhQIfv444/dvZs8ebLVqVPHHnnkkXj7a7t/HFqKFi2apGsHAAAAAKRPPJUPZ6WGDRva77//7iqcVJHkly9fPrf4qfKoePHi8Y6jKiZv/R133GFvvPGGffXVV3bvvfemeIxDhgxxFURLliyxWrVqBdZfeOGF1rp1axdcJcXUqVNd6NasWTP3WpVfl156aWC7//py585tmTNnDnvNiRk+fLh16NDBVWM9/PDD1rt378C2DRs2uOouLa+88krQ+y6++GJ76KGH4h1PIZS/8gsAAAAAgGhRMYWzUqZMmWzgwIGueujvv/9O8fE0fW/+/PmuEilr1qypMsZx48a5AM0fSnmyZMliuXLlStLxFDJ9/vnntn//fjtddOxPPvnEOnXqZI0aNbK9e/e6++KZOHGim4LYq1evsO/XND0AAAAAAFILwRTOWi1atLCaNWtav379kn0MTUtTdZH6KdWtW9dOnjwZtuonOX777TfXqym1vPfee246oKbQ1a5d202b+/bbby01ffTRR1a+fHk3DVDhX7t27VwFlefXX3+1vHnzBlViKazSPfSWn3/+OeiYJUuWDNquY0dy5MgR27dvX9ACAAAAAEi/CKZwVlOfKfVBWr16dbLe37FjR9fYXAFP06ZN7b///a/rlZQa/E3UU4OCsz///NPmzJnj+j+pR9W1115rzz77bKqdY8SIEa5ayqN/q4LKX6UVWhWlPlq6hzNmzLCDBw/aiRMngrar4krbvUVVX5FoaqY3FVOLemcBAAAAANIvgimc1RTWKBhR4/LkUPhRrlw5V4E0YcIE12Nq9uzZqTI2PeVPUwMTowokTZkLtWfPnni9sjQFUGGU+j59+eWXNmDAABdMJbVfVTirVq2y7777zk3TU38qLVdeeaV7GqAqqUTVVBqr/6l6qoLSPSxdunTY45YtW9Zt95ZI+4k+Rx3fWzZu3Jji6wIAAAAApF0EUzjr6al306ZNs0WLFqXoOApY1Oy7Z8+eqVLtpAbiCrl+/PHHeNvUp0nVRVKxYkVbtmxZvH20TuFWQqpUqWLHjx+3f//9N8Xj1ZQ9BX0rVqwIqnB69NFHA9P5VKmlcEyVaqeDplQqqPMvAAAAAID0i6fy4axXvXp1NyVv6NChKT7WPffc4yqQ1DdJIYxn7dq18fZVrySFNJHoyXWa3tagQQN3zGuuucby5MnjntKnYEdhj3pk6QmAqtRSb6u77rrLhTN63/jx413g5qlXr561b9/eLrvsMtdnShVOTz75pNWvXz/FAY6CsjFjxrgKrGrVqgVt05j0BD5NHdQ1v/zyyy7A27Vrl3Xp0sVVROnfY8eOdfurN5Xf9u3b4wVnGn9C9w4AAAAAAKFiCmmCAhU1Lk+pggUL2m233Wb9+/cPOp6agOvpev5l27ZtCR5LAdNXX33lpsa9++67blqcpgwqQFMI5QVAF154oX3zzTdu2p+e4nfFFVe4aYXq7dSkSZPA8TRlUf20brjhBqtcubI9+OCDbp32TampU6fazp07XUP5UDqXFq9qSufVNMIdO3a48E7T+5o1a2Z//fWXzZw50wWFfqoIK1GiRNCydOnSFI8ZAAAAAHDuy3AqtTs4A0CU9FQ+1wS9xwTLmC0n9w0AAABAurYurrmlld9x6hucGu1ZqJgCAAAAAABATBBMARGo35Iapodbxo0bd9bdt6ZNm0Yc78CBA2M9PAAAAAAA4mEqHxDB+vXrXdPwcIoVK+YanZ9NNm3aZIcPH47YW0vLuV4CCgAAAABIW7/jeCofEEHp0qXT1L05//zzYz0EAAAAAACShKl8AAAAAAAAiAmCKQAAAAAAAMQEU/kAxFy1frMsY7acsR4GACCdSwuP6AYA4FxDxRQAAAAAAABigmAKAAAAAAAAMUEwBQAAAAAAgJggmAIAAAAAAEBMEEwhyKJFiyxTpkzWvHn85p+TJ0+2K6+80vLly2d58uSxqlWrWo8ePdy2evXqWYYMGSIu2h7JP//8Y8WLF7eBAwfG29amTRt3zhMnTkQc37Zt2yxLliz20UcfhT1+165d7ZJLLnH/7t+/f9jxVapUKbC//1qyZ89uFSpUsEGDBtmpU6eS/G1p3LixG+8PP/wQb5vO490/v1GjRln+/PkDr70xN2nSJN6+gwcPTvT++oVevz7La6+91r7++uuw++u6NX6dJ7FxAgAAAACQVARTCDJ8+HB78MEH7ZtvvrHNmzcH1s+ZM8fatm1rLVu2tMWLF9vSpUvt+eeft2PHjrntkyZNsi1btrhF22X27NmBddoeSeHChe29996zZ555xn7++efA+k8++cSmT59uH3zwgQtHIo2vWLFiLqgaMWJEvGMfPHjQJkyY4MIpjwI1b1zesmDBgqD3devWza1fu3at9enTx/r27WvvvPNOkr4tGzZssIULF9oDDzwQdmxJUaJECZs7d679/fffQet13AsuuCBJx/Jfv4K+8uXL24033mh79+6Nt6+O36tXrxSPHwAAAACAcAimEHDgwAH7+OOP7d5773VBjypiPNOmTbOrr77aHn/8catYsaKrIrr11lvtzTffdNsLFizoqp60FClSxK0rVKhQYJ22J+Tmm2+2Dh062O233+7Crh07dtj9999vcXFx7nyJjU/Bk8IzhUF+CreOHz9uHTt2DKzLnDlzYFzeonDML2fOnG596dKl7Y477rCLL77YvvrqqyR9W0aOHOkCH413/Pjxdvjw4WR/24oWLWo33HCDC+k8Cr1UbRauui0h/uuvUqWKDRgwwN3bX3/9NWg/VVFpzNq+b98+dz4AAAAAAFITwRQCVFmkKW0Kgjp16uSqZLzpawoxfvnlF1u5cuVpu2Ovvfaa7dy505599lm77777rFq1aq46KprxNWvWzFVO+cMqLxz6z3/+k+wpZzr+/Pnzbc2aNZY1a9YkvU/n1jg15nLlytmnn35qKXHnnXcGXZ+uX4FbUsYV6siRI26cuj9eAOhRdVr79u3dNEn91euU0vkUcvkXAAAAAED6RTCFAAUPClJE/Yw0tcvrPaSAqHbt2la9enUrU6aMtWvXzgUjChpSS968eV1Iol5TX375pfu3+iBFMz5N9VO1lYIbL6z6448/XKikQMdP0wVz584dtHTv3j1on7feesutz5Ytm9WtW9dOnjxpDz30UNTXommMhw4dcj2mRONOabCj6isFOZrG6E1RDL22aPivP0eOHPbSSy+5ii7df4/OoyDNu9/6q/Opsiol1LNKfa28pVSpUik6HgAAAAAgbSOYgqNeSuoNpcoYb7qXekp5YUquXLlsxowZ9vvvv9tTTz3lQo3HHnvMLr/8chfApJbrr7/eNTvv3Lmzm0YX7fhEIc1ff/3lejGJgi2FaDqmnyqDli9fHrRoupqfKpG0/ttvv7WmTZvaf//7X6tTp07U16HQTuPTOEXj1rEUliWXKpcUEOm6NEVR0yk1xTCp/NevXmGaati6dWtbsmRJYB8FVRdddJHVqFHDva5Zs6b7PDSVMiXUr0uBords3LgxRccDAAAAAKRt//erGemeAh71YjrvvPMC90KVR6oYeuONN1x1iyis0HLXXXe5sEbhiMIK9WFKtS9l5syBQCcp41MTbz1hTsGNnlI3evRo18TcX3UlmvqmqXUJ0fG8fVQppH8rMGvYsGGi49+1a5d7gqF6Zb399tuB9XqyoAIrNY0XVSiFazi+Z8+ewP0OpfDtiiuucFMqk1MtFe76a9WqZVOmTLEhQ4bY2LFjA/dbUzf9n4OqxjR+fyP5pNLnpQUAAAAAAKFiCi7wUYjz8ssvB1URrVixwgVBqp4JR9VIahKuaWVny/gUmkycONEtmzZtsi5duqT4/KoOe/jhh61nz56BaYIJGTdunJUsWdKNzz9ejV9TDRVQeZVLy5Yti/d+rVPgF+mJeloUTKlZfGrRVEivObum+ql6at68eUHj12s9xU/9tgAAAAAASA1UTMGmT59uu3fvdqFOaKVOy5YtXfXM1q1b3ZQ9NRnXlC5V9QwdOtRVBTVq1Cjm4/N6RGlKmnpB3XPPPe4pduF6GCno0vX4qapKzdMj0fHUlF2BV6tWrRIcr8ajfdS83U9j0VS2mTNnuifpaQqdqr00XlWgqZJI0yUVtOkpiJH873//c/c9uQ3d/de/f/9+V/G2atUq6927d2D8mqKp3lqh1GdM2wcPHuxeK2RTaOWn66hcuXKyxgYAAAAASF+omIILGjRFLdz0MQU/qp4pUKCA/fnnn3bbbbe5p8yp75LCDTUpD32aWyzG99NPP7nXquBSY3YFWZGmummKWokSJYIWfz+rcAoWLOiuvX///m5KWyTq2aRKKY0rlMbfoEGDQF+sCy+80DUyVwWSrk9T9DRtUP2j1Nw9EvX7Sm4oFXr96h2lc2rKoa7v6NGjbjpfuPGL1qt6TcGYqBm6pgL6l5tuuinZYwMAAAAApC8ZTkUzNwkATgM9/c89na/HBMuYLSf3GAAQU+vimvMJAAAQ5e849Uz2P909uaiYAgAAAAAAQEwQTOGMUENwNREPt6iZd1qiflaRrsXrdRUrkcalZf78+TEdGwAAAAAAoZjKhzNCTba3bdsWdluWLFkS7fF0Ntm+fbsrXQxHZYxFixa1WPn9998jbjv//PMtR44cdi6XgAIAAAAA0tbvOJ7KhzMiT548bjkXKHiKZfiUkHLlysV6CAAAAAAARI2pfAAAAAAAAIgJgikAAAAAAADEBFP5AMRctX6zLGO2nLEeBgAgHVgX1zzWQwAAAD5UTAEAAAAAACAmCKYAAAAAAAAQEwRTAAAAAAAAiAmCKQQsWrTIMmXKZM2bx++9MHnyZLvyyistX758lidPHqtatar16NHDbatXr55lyJAh4qLtiVmxYoXdfPPNVrRoUcuePbuVKVPG2rZta9u3b4+376BBg9w4Bw8eHFg3ceJEt27Tpk1hj1++fHl79NFHExxv9+7dA/v71+fNm9dq165tn332WZK/LYcPH7aCBQta4cKF7ciRI/G26/hTpkyJt75Lly526623Bl57Y46Li4u3rz4vbevfv39UYwq9/mLFilnr1q1t/fr1Yfdv3Lixu7c//PBDouMEAAAAACApCKYQMHz4cHvwwQftm2++sc2bNwfWz5kzx4VELVu2tMWLF9vSpUvt+eeft2PHjrntkyZNsi1btrhF22X27NmBddqekB07dliDBg1cgDNr1ixbvXq1jRw50s477zw7ePBgvP1HjBhhvXr1cn89CrUKFSpkH3zwQbz9dT2///67de3aNbCuW7dugfF5y4svvhj0Po1B65csWWJXX321tWrVyn7++eckfWMUmCnEq1SpUtgAKilKlSplo0aNClqnIE6fT4kSJZJ0LO/69TkrcNu4caN16tQp3n4bNmywhQsX2gMPPBB0vwEAAAAASA0EU3AOHDhgH3/8sd17772uAscfgEybNs0FM48//rhVrFjRKlSo4Kpk3nzzTbddgVLx4sXdUqRIEbdOIZG3TtsT8u2339revXtt2LBhVqtWLStbtqzVr1/fXn31Vfdvv6+//tpVIQ0YMMD27dvnQhPJkiWLde7cOV5wIwpUrrjiChcQeXLmzBkYn7eoMsovf/78br2u99lnn7Xjx4/b3Llzkxz2KfDRon+nxI033mj//POPu18eBXE33HCDqzRLCu/6FWipEk7B07Jly+Ltp3BO59X3Yvz48e7eAwAAAACQWgim4EyYMMFV9Sh4UoiiMOfUqVNumwKMX375xVauXHla7paOr9BH0wW9c0aicKd9+/YuiNJff9ijiqjffvvNVUj5A7dPP/00qFoqqTQ27zxZs2aN+n1//PGHmx7Zpk0bt8yfPz/idLlo6NwdO3Z0YZFHQdydd95pKbFr1y73+Su889NnoXPp+6DvRrly5dy9TAlNZ1Sg6F8AAAAAAOkXwRSCKnukSZMmroJJ1Umi6X3qsVS9enXX+6ldu3YuuArXMyk5VLHz5JNPWocOHVwvpqZNm7r+Udu2bQvaTyGGghFvnPqrQEXhk1SpUsUdyz/lTNsVsGjMfm+99Zblzp07aBk3blzQPgq+tD5btmz2yCOPuGtXwBQtjUPXUqBAAVc1pl5N/lApORRC6Zo0xVEBnD4nVTQllXf9uXLlctVta9eujTdVT9MxDx065MYtqVH1pf5g6lPmLZqeCAAAAABIvwim4EIJ9YZSECOZM2d2PaW8EELhxYwZM1yfpqeeesoFGo899phdfvnlLrhIDepZtXXrVnvnnXfclDv9VZWOv6eTppJddNFFVqNGDfe6Zs2aVrp0aTcF0R/cKLzav3+/e62wRY291bDdT5VHy5cvD1rUp8pPUwm1/osvvnChl6YaJjYt0XPixAk3zc7ft0n/VoXTyZMnk3mXzF27GrnrGnVtmr6ozyupvOtX0/kFCxa4aihNCfTum+j4+h54x9f3Q9MIVQmWXH369HFhmreotxUAAAAAIP0imIILoDRdTc3GFUJoefvtt13jboUHHoVCd911lwto1I9o1apVQaFQSqlyRyHSSy+95Bqgazz6t3+cmlLojVGLxuCv9PEqo1RVpGl9ClLCTeNTtY7CGP8SGl5piqEX2KjSKdJTAsNRE3c1JveCHS0am6byqVm5R+f032PPnj173BjDUfim/l4Kp5I7jc9//eofpnur++V9nprep6mVqqzyxn/++ee770lKmqCr+ky9vPwLAAAAACD9IphK5xQ0jB492l5++eWg6iFV0igYUpVSOJrWpgba4Z6alxrUT0lBmHd8VU7p6Xjz5s0LGqdeq4/TmjVrAkGPwi2FJwqT1Lj82muvTfF4VB126aWXusquaCjoURAVWpWldf7pcOrppacchlZb6f5r7OFoyqPuR7Vq1VwlV2rIlCmT++s1N9e0xpIlS7px+Mev74mqvjRGAAAAAABSKulzgHBOmT59uu3evdtVFYVW6LRs2dKFKJpipyl7zZo1c1PnVM0zdOhQO3bsmDVq1ChVxvDRRx+50EZhjHpC6UmAn3/+eaAnk8ahcKhu3brx3q/+V9quvlSia1EYpaqr3r17hz2nrkfXFVrNo35QkfTo0cNatGhhvXr1ctVDkezYscONf+rUqS488rvtttvcMVSRpGmBjz76qBuvpi3qXiqIe/31191nouq0cDTGLVu2uAbwyeW/fvXy0lMHs2fP7qrDRPezVatW8cavnlCajjdz5kz39EZRxZdCq9DqN/pHAQAAAAASQ8VUOqcAomHDhmGnjSmYUpWSgpA///zThSoKUNTQW6HGl19+6Sp+UkpVP6q+Ut8q9Y1SA3NNxdOUQfVQOnr0qI0dO9aNJxytV9WXgjK55ppr3LjULF1jDuf999+3EiVKBC1ej61I1BS+bNmyiVZNaSzqy9WgQYN427QuR44c7npE59R1qsJLFVk6h+6tGpsXK1Ys4jny58/vzpFc/uuvX7++/fPPPy4I9Cq4VCkV7n7re6Jr8Fd9qWqtVq1aQcszzzyT7LEBAAAAANKPDKdUngIAMaDw0D2dr8cEy5gtJ58BAOC0Wxf3fxW/AAAgZb/jNHsmNfoGUzEFAAAAAACAmCCYwmmnRtq5c+cOu1StWjVNfgIad6Rr0vXGyvz58yOOSwsAAAAAAGcTpvLhtNu/f79rsB2OGniroXpas379+kBPq1DqDaWnA8aCnqq3adOmiNvLlStn53IJKAAAAAAgbf2O46l8OO0U0sQqqDldztYwTY3Vz7bwCQAAAACASJjKBwAAAAAAgJggmAIAAAAAAEBMMJUPQMxV6zfLMmbLGethAOeEdXHNYz0EAAAAIGpUTAEAAAAAACAmCKYAAAAAAAAQEwRTAAAAAAAAiAmCqVTSpUsXy5Ahg8XFxQWtnzJlilsfqlKlSpYtWzbbunWrez1v3jy3X0KL9unfv7/VrFkz3vHWrVvn9lm+fHnY4xUpUsSaNWtmP//8c9hxhy5NmjRJ0vUPGjTIMmXKZIMHDw67Xdf58MMPW7ly5Sx79uxWrFgxu/rqq+3tt9+2Q4cOBfYrU6ZM2PGE3tdwvHvgLVmzZnXne+655+zUqVM2ZswYy5Url/3+++9B79u8ebMVKFDA3njjjUTP4R9fzpw5rXr16jZs2LCw+44fP97dk/vvvz/eNu/zqVq1qp04cSJoW/78+W3UqFFB5xwyZEjgta6lZ8+eljdvXnecpIw5R44c7nWbNm3sf//7X4LfodD76S2dOnWKajsAAAAAAIkhmEpFClxeeOEF2717d4L7LViwwA4fPmytWrWyDz74wK2rU6eObdmyJbAoOFA45F+nfZJq7dq17r2zZs2yI0eOWPPmze3o0aNB+4SeR4tClaQYMWKE9erVy/0N9eeff1qtWrXsyy+/tIEDB9qPP/5oixYtcvtPnz7dZs+eHbT/gAED4o3nwQcfjHosOp7e89tvv9kzzzxjzz//vBtX586drXHjxi6MO3nyZGD/bt262aWXXho2QArHG9/KlStdCKP3f/HFF/H2Gz58uLtG3ct///037LF0b0aPHh31tSnE6tq1q3vP3LlzrV69ekkas74Peq/Cr4YNG7p7E+399JY333wzSdsBAAAAAIiEYCoV6Yd+8eLFXfVQQhRYdOjQwQUlXpCj6h6911tU2aKKKv867ZNURYsWde+95JJLrEePHrZx40Zbs2ZN0D6h59GiCqJoff311y5oU/ixb98+W7hwYdD2++67zzJnzmxLlixxgVvlypXtwgsvtFtuucVmzJhhN910U9D+efLkiTceVTpFq1ChQu49pUuXto4dO7rKrGXLlrlt7777rv3666/2yiuvuNeqTPr2229t5MiRYSvbwvHGp2vo3bu3FSxY0L766qugff766y93H5544gmrUKGCTZo0KeyxFLj169fPhYaJ0T6tW7d2QdD8+fNdmBYtb8wXXHCB1a1b19577z17+umnrW/fvi6siuZ+eku+fPmStB0AAAAAgEgIplKRpm2pIuj111+3v//+O+w++/fvt08++cRV2jRq1Mj27t3rQobTTef56KOP3L+TE3AlFrS1b9/esmTJ4v7qtWfnzp2uUkrVSJHCpWgDoeRQGLZ06VK74oor3GtNafRCGYVJjzzyiL322mtWqlSpJB9bVVcTJ050FXKh91RBl6rTFNLos/bfEz+FhcePH3ffmYQcOHDAHW/VqlUuSKtYsaKllKZWalrgZ599luJjAQAAAACQHARTqaxFixauB5SqYMJROFS+fHnXW0hBVrt27SKGFqmhZMmSljt3bjd168MPP7Sbb77Z9bfy03Q67eNfFLBFQxVSn376aaCvkP5OmDDBBSmifk4KP0KDlMKFCwfOpaojP70OHU9SwjtNedR7FBbVrl3bVWnddtttge233nprYKrkddddZ7fffnvUx/aPT5Vmmo6p6rK77rorKLBSJZZ3T/QZa/qmqqhCqU+VviuqslN4GMmzzz7rej/pPiQnRAtHlV6qqFOvqGjup7doKmZStodWfek7418AAAAAAOkXwdRpoD5T6h21evXqeNs0dc/fHFr/VgWVKqlOBwUZqhhSUKIpZe+88068ferXr+9CD//SvXv3qI6v/kkXXXSR1ahRw71WKKcpdB9//HGC71u8eLE7jwK60Glsjz/+eLzxXHbZZVFfs86t96xYscKFZKoI0pQ6P1VMKUB66qmnoj5u6PjUPFyVWK+++qprsu5RJdbBgwdds3kvhFN1XLj+W6KeUZoOp+9NJDfccIM7ZrSBYbQUGiZWsebdT2+pUqVKkrb7KYBTFZm3pFbIBgAAAABImzLHegDnIvXwUZPtPn36uEbbHk3D+u6771wo468SUkNrVVKpiXZi9CS2cJU1e/bscX9D+/uULVvWVUupYmn79u3Wtm1b++abb4L20RQ7f7CSFKr2+uWXX1wPKY8CH4UwClx0XAUfoX2M1J9J1EsrlIKc5I5HFHZ471c/qz/++MMFUXqioRrUizde/7ij5Y1Pi0JFPZlPwZkXyOie7Nq1K+jadE9++ukn14w9Y8bgPFhjUBNyfVceeOCBsOds0KCB60elvlw6lqYfppSmWe7YscN9R6K9n8nZ7qf/Jh599NHAa1VMEU4BAAAAQPpFxdRpEhcXZ9OmTXNPn/MosFBopUoef4WJfqhHO51PAZP6V23bti1ovZp7K3RRc+tI1OdJT5KbPHmypYaff/7Z9XCaN29e0PXota5bTdZVCaRqoTfeeMNV/MSCpkyqj1Po0whTg0IVhX0KXLywRxVaChr990TT29SLSv22wlFTc1WPKbhKqGpK36n333/fHnrooRSPXeGWQjJNbTxTNP1R4ap/AQAAAACkX1RMnSaqotET4YYOHepeHzt2zMaMGeOeXFetWrWgfdWfSE+JU+WRwomEqBJL4ZSajD/33HPuKWgKpTQlTc2sFcJEon5GqspSTyOFEd4ULk2l27p1a7wqHlUGJURh2uWXX+7CtlDq7aTtgwcPtrfeess9GU9VRapauvjii10g8sMPP7jwKvTpcprWGDoejT3aEEPhkN6vMErhmQIYTVc8XSGI7rs+U4V06iWlME49rEKnyGlqn+6JeltFCjP1+Sb25Ef1BNOTDFU5pcAvGt491fdQva7Gjh1rw4YNc1PrUlKdBgAAAABASlAxdRophFJ4IFOnTnWBiZqjh9J0My3RVE0pMFLVjSqjFE4pEFHQpHBEDbITo6li6n2lKWiemTNnWokSJYKWa665JsHjqPpI4UbLli3Dbtf60aNHuyBEPahUMaRQRZVF6kelkEpPouvZs2e8cfft2zfeeHr16mXR0nn0njJlytjdd9/tAqHEel6lhKbwqZpJ49YURn3G4fo26Z7oe/DPP/+EPc7111/vFgVqCdE+M2bMcH3DVAWnPlGJ8e6pQqjOnTu76aBz5syJ13geAAAAAIAzKcOpaH7VAsBpoB5Trgl6jwmWMVtO7jGQCtbFNec+AgAA4LT/jlPBQ2rMTKJiCgAAAAAAADFBMIWIxo0bZ7lz5w67JNYL63To3r17xPFo27l2vefqmAEAAAAA8DCVDwk2zA59+p8nS5YsVrp06TN697Zv3+5KBsNR+WDRokXPqes9V8d8OktAAQAAAABp63ccwRSAmCGYAgAAAIC0hR5TAAAAAAAAOCfQYwoAAAAAAAAxkTk2pwWA/69av1mWMVtObkk6tC6ueayHAAAAACCGqJgCAAAAAABATBBMAQAAAAAAICYIpgAAAAAAABATBFMAAAAAAACICYIpnPW6dOliGTJksLi4uKD1U6ZMcetDVapUybJly2Zbt251r+fNm+f2S2jRPv3797eaNWvGO966devcPsuXLw97vCJFilizZs3s559/Djvu0KVJkyZRXXeZMmVsyJAhgdcrVqywm2++2YoWLWrZs2d329u2bWvbt2+P8k6affDBB1a7dm3LmTOn5cmTx6677jqbPn160D7e9e3ZsyfsMXSfvGvJnDmzFS5c2OrWrevGeuTIkajHAgAAAAAAwRTSBAUxL7zwgu3evTvB/RYsWGCHDx+2Vq1auRBG6tSpY1u2bAksbdq0ceGQf532Saq1a9e6986aNcsFMs2bN7ejR48G7RN6Hi3jx49P8rl27NhhDRo0sIIFC7rzrV692kaOHGnnnXeeHTx4MKpj9OzZ0+655x4XZv3000+2ePFiu+aaa+yWW26xN954I0njqVq1qruWDRs22Ny5c61169Y2aNAgdx/379+f5OsDAAAAAKRPmWM9ACAaDRs2tN9//92FHy+++GLE/YYPH24dOnRwlUAPP/yw9e7d27JmzWrFixcP7JMjRw4XJPnXJYcql/Lnz++O06NHD1fNtGbNGrv44osD+6hyK6XnkW+//db27t1rw4YNc1VKUrZsWatfv35U7//uu+/s5ZdftqFDh9qDDz4YWP/888/bv//+a48++qgLqEqVKhXV8TQG77oUjlWvXt0aNWpkNWrUcAHic889l6zrBAAAAACkL1RMIU3IlCmTDRw40F5//XX7+++/w+6jSp1PPvnEOnXq5EISBTnz588/7WPTeT766CP3b4Vgp4NCoOPHj9vkyZPt1KlTSX6/qrRy587tKqZCPfbYY3bs2DGbOHFiisaoKZRNmza1SZMmRdxHgeC+ffuCFgAAAABA+kUwhTSjRYsWrgdUv379wm5XOFS+fHk3zUxBVrt27VwF1elSsmRJF/aoaurDDz90FVMKZ/zUv0n7+BcFbEl15ZVX2pNPPumqwdTTSQHQ4MGDbdu2bVG9/9dff7WL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O46n8qUTefLkccvZQiFOWgty0uKYAQAAAAA4mzGVDwAAAAAAADFBMAUAAAAAAICYYCofgJir1m+WZcyWM9bDOOesi2se6yEAAAAAQIKomAIAAAAAAEBMEEwBAAAAAAAgJgimAAAAAAAAEBMEUwAAAAAAAIgJgqk0LEOGDAku/fv3t3Xr1gWtK1SokN1www32448/Bh1r0aJFlilTJmve/P83Sx4zZozlypXLfv/996B9N2/ebAUKFLA33ngjwfG1a9fOmjRpErRu5syZgbH56fUFF1zg/v35559b1qxZbdmyZUH7vPzyy1a4cGHbunVrovdmx44ddu+997pjZsuWzYoXL26NGze2b7/9NrBPmTJlwt63uLi4eMfTe3V/fvjhh3jbunTpEvZ9U6ZMcesT470/0qJxSr169QLrsmfPbhUqVLBBgwbZqVOnLCkmTpzojpUvXz7LnTu3XXzxxTZgwADbtWuX2z5q1Ch3jtDPbs+ePW79vHnzAvsktOi7BwAAAABAQgim0rAtW7YEliFDhljevHmD1vXs2TOw7+zZs926WbNm2YEDB6xp06YuaPAMHz7cHnzwQfvmm29c8CSdO3d2gYyCk5MnTwb27datm1166aV2//33Jzi++vXruyDo+PHjgXVz5861UqVKuXDDT+u1vzRr1sxuu+02txw5csStW7VqlT311FP25ptvupApMS1btnTh2wcffGC//vqrTZ061YUxO3fuDNpPgYz/nmnRffDbsGGDLVy40B544AEbMWJE2PMpKHrhhRds9+7dllSvvfZa0Pll5MiRgdf+MEz3XuvWrl1rffr0sb59+9o777wT9bn++9//Wtu2ba127dr2xRdf2MqVK13gt2LFChdEejJnzuy+M/pcwtEx/GO+6qqrAmPzFn3OAAAAAAAkJHOCW3FW8wc0qn5RlUpoaPPPP/+4v6qU0jYtL730kl199dX2/fffu+BJQdXHH39sS5YscdVIqoZ58skn3fveffddq1q1qr3yyisu6NI2hU0///xzotVACpp0bB33yiuvdOsUSD3xxBP22GOP2b///usCHf3VWO64447Ae1999VWrXr269evXz5577jm7/fbb7aabbnKBSGIUuM2fP9+d67rrrnPrSpcubZdffnm8ffPkyZNo0KWQ6MYbb3QVWLoO3YscOXIE7dOwYUNXWaYKphdffNGSQp+dFr/8+fOHHVfOnDkD63W/VLX21VdfubElZvHixTZw4EAXYj788MOB9arIatSoUVBQqUq5Nm3auM9Kn00oXb//HqjCzT82AAAAAACiQcVUOuQFCkePHnV/J0yYYJUqVbKKFStap06dXFWQNz2sSJEi9t5779nTTz/tApBHHnnEVfhEUw2jqWbnnXdeoOpm//79bnpe69atXRii6YOiaiRVRnkVU15gpHGomqdjx462ceNGe/vtt6O6Pk1P06KpdF7FVXLpPiiY0n3RPSpXrpx9+umn8fbTND+FPq+//rr9/fffKTpntONS+LZmzRoXCkVj3Lhx7r7cd999YbcrDAudXqkAMtz1Jpc+j3379gUtAAAAAID0i2AqnVFVzLPPPusCCq+CSNP4FLyI+grt3bvXvv7668B7br31Vlc9o22qQFL1UrQUNnnT9hSkKKxS2FW3bt3Aev0tW7asq2ryu/76661Vq1YuOBs6dKir+oqGpqGpskvT+BS2qDpMFWA//fRTvH179+4dCLK8ReP0aDrboUOHXGWZ6D7pfoXTokULq1mzpqvyOl3eeustN0b1zdI91BTLhx56KKr3/vbbb3bhhRdalixZotpfoaIqqzT9zz8dMyVUUeZViGlhuh8AAAAApG8EU+lEnTp1XKChpuXqJ6Spe8WKFXO9ijTFq3379oFQR9PlQsMXVUwpBFGfp6RQXydN/Tt27JgLoPRaFHD5gyl/tZRn06ZNrlm6poj5w6JoqMeUemWpt5QCNZ3jkksucYGV3+OPP27Lly8PWi677LLAdlVt6X7ovojuk67njz/+CHte9ZlSILZ69Wo7HVQ9pjFqDOoTptBIn200ktok3Qvu1Eg+Um+tpFJfLAWf3qJKOAAAAABA+kUwlU4oiFIgpebcClXUYFwUQKkaRtUxCl+0aMqcntym4MDjBTPe32gpcDp48KBr4K0pfV7PJ/1V7yI9CU5/VR0VymuyPn36dDcmfxVXNNS/Sr2TFKppuqCauIdWM+kpf5qe51+8qY4a2+TJk12Vkndvzj//fHe/IgU1qmJSdZUCmNNBVUYao5qXq5JMPaZU1RUNVav9+eefLiSMlirOdC3PPPOMqxxLKVV6qUm/fwEAAAAApF8EU+mEpkxddNFFQX2EFLCMHj3a9XHyVwwpwFJQNX78+BSfV+fUuVW5pGN7wZQCHi06t3pdhVZMDRs2zBYsWOCCM21Tc+8777zThVzJVaVKlSS9Xz2ZSpYs6e6H//5ozKq8OnHiRNj3xcXF2bRp0wI9tE4XVcBpqp2a0kdTDdWhQwfXjF5BWzj+5ud+ekphxowZXW8xAAAAAABSE8FUOqZKJFVQde3a1apVqxa0aCpcpF5KSaVgSWGIKn00fdCjkErNwr0m6Z7169fbo48+6p4e6PWd0hQ5PQVQT4lLzM6dO10F1tixY11fqb/++ss++eQT97S8W265JWhfNWTXkwj9i9eQW9evHleh90b3S0871DTDcPQ0QU25U1+s0+2ee+6xX3/91VW4JeaKK66wXr16uSci6q+CM93rOXPmuIb0moIYqfJMFVNn4noAAAAAAOkLwVQ6puClYcOGbnpYKAVTS5YsCdswPDnBlAIgr7+UP5jSen+1lCp/FPxcddVVdvfddwfWq8+UqpSimdKnSiKFMK+++qqbWqcwSdP5NDVQU9/8+vbtayVKlAhaFNosXbrUVUrpPoTS/WrQoEGCwd2AAQNcT67TrWDBgnbbbbe5J+hFcz4FfB9++KGbPqkph1WrVnUh4MUXX5xgU3ttU+N0AAAAAABSU4ZTyemIDACpQNVp7ul8PSZYxmw5uaepbF1cc+4pAAAAgNPyO059qVOjbzAVUwAAAAAAAIgJgikkm5qDa9pcuEVTxE6XDRs2RDyvFm0/2zRt2jTieAcOHJgq5+jevXvEc2gbAAAAAABnG6byIdnUH2rbtm1ht2XJkiXQuDy16WmC69ati7i9TJkyljlzZjubbNq0yQ4fPhyxT5SWlNq+fXugcXsolVcWLVrUzvUSUAAAAABA2vodRzAFIGYIpgAAAAAgbaHHFAAAAAAAAM4J9JgCAAAAAABATJxdjXgApEvV+s2yjNlyxnoYada6uOaxHgIAAAAAJAsVUwAAAAAAAIgJgikAAAAAAADEBMEUAAAAAAAAYoJgKg3q0qWLZciQwS1ZsmSxYsWKWaNGjWzEiBF28uTJwH5lypQJ7Odf4uLi3PZ169YFrc+aNauVK1fOnnvuOTt16lSCx/AWjSUx2m/KlCkRt//yyy/Wpk0bK1KkiGXLls0qVKhgffv2tUOHDoXdv3HjxpYpUyb74YcfIt4b7xo9Or/WR2PevHlB15gjRw6rWrWqvffee2H3X7RokRtP8+bx+/x493j58uWWVKNGjXLvrVy5crxtn3zyidumzyfU4cOHrWDBgla4cGE7cuRIYH316tWte/fuYc81ZswYd+//+eefeNfvX7Zu3er279+/f2Cdrr1UqVJ29913265du5J8nQAAAACA9ItgKo1q0qSJbdmyxQUfX3zxhdWvX98efvhhu/HGG+348eOB/QYMGOD28y8PPvhg0LFmz57t1v/222/2zDPP2PPPP+9CLlH4471v4sSJbt3atWsD61577bUUXcd3331nV1xxhR09etRmzJhhv/76qzu/QhmFbVrvt2HDBlu4cKE98MADgTGGyp49u73wwgu2e/fuFI3Nu85Vq1bZPffcY/fee6/NmTMn3n7Dhw939/Sbb76xzZs3W2rKlSuXbd++3YVfoee84IILwr5Hn5OCtEqVKgUFgl27drWPPvrIBVehRo4caTfffLMLszz+z9lbihYtGtiuc2idPhO9f+bMme4eAQAAAAAQLYKpNErVLcWLF7fzzz/fLrnkEnvyySfts88+cyGVQh1Pnjx53H7+RWGHX6FChdz60qVLW8eOHe3qq6+2ZcuWuW2qYvLepyocUTjhrcuXL1+yr0FVWQpLVBE0adIku/zyy90YWrdubdOmTXNhzKuvvhr0HgUgCt8UgIwfPz5syNKwYUM3tkGDBllKeNdZtmxZe+ihh9xf7754Dhw4YB9//LEbjyqm/Pc+NWTOnNk6dOgQFML9/fffrqpJ68NRaNWpUye36N8evdb98gJGz19//eWOp8/Cz/85e0vGjBmDxuZ9B3XP9bl99dVXqXj1AAAAAIBzHcHUOeT666+3GjVquJAnuZYsWWJLly51VUynm6a3qRrp0UcfDQo8RNehsEPhkz/IUjClgEXVQJp2+Omnn8Y7rqaWDRw40F5//XUX4qSUzqtqIFUGhd6XCRMmuLFUrFjRjUsBkjcNMrXceeed7jze1EaFX6qY0xTOUH/88YcL9DQ1Usv8+fNt/fr1bpuqoW655ZZ4lWY6XsmSJe2GG25I9hhVuTdr1iw3HTQhmlq4b9++oAUAAAAAkH4RTJ1jFJIoJPD07t3bcufOHbQorPCrU6eOW69QoXbt2i7QuO222077WDVtT8L1UPLWe/t4Uw4VzqjHlIRWBPm1aNHCatasaf369Uv2+BTWePdF1VA6Vt26dcNWJ4nCor1799rXX39tqalWrVp24YUXuhBOoZeCJIVV4Sh0atq0qRUoUMBVuOleKczzqCpK1VGqkhId74MPPrDbb789XjjoXb+3aOqe388//+zWqweXqsnUK0zft4Soik1Vdt6i3lQAAAAAgPSLYOoco6DB3+T78ccfd5VJ/uWyyy4Leo+momn9ihUrXGWOpgQ+8cQTZ3TM0VDo0rZtWzeFTNq3b2/ffvutqxIKR32mFLqsXr06WeNSgOfds2HDhrkqrLfffjuoB9PixYvdOETj0vgihWUpoSBKAZNCr4MHD1qzZs3i7XPixAl3vV5QJvq3giyvKb76dilw8sIq9cxSJdgdd9yR4PVr+fzzz4O2q0pM69WHTIGUQrDQ/mWh+vTp48I7b9m4cWOy7wkAAAAAIO0jmDrHKIRR9YpH07c05c2/qMLFT1UrWq8KJfUJ6tGjh7388sv277//ntax6ul73pgjXYu3j572NnnyZHvrrbdcAKRFvY3U6D1SE3RVNyksURiSHLqPui+qFFJw07lzZ9eY3aMASuc/77zzAmNScKUeTgpdUpN6f6lRvJ6Gp3F44ZyfptJt2rQpEN5padeunZvK5zVtV1WUnlyoAEthlQIqNc5XRVak6/cW9f/y857iWK1aNfcURE2hVPP8xHqj5c2bN2gBAAAAAKRfBFPnkP/9739uelXLli1TdBwFDApcQp+Il9o01U5TD9Xg3Kvo8ah6S1P3vGqkcePGuUofrfdX8ShAU0WQqoXCUWDiNVJPKd0Xr9m67s/o0aPd+f3j0fgUVPl7Y6UGTcvTU/NUMRVpGp+CMgVRoRVyWuev4lLIpkol9SJT2Bfa9Dy5nnrqKXvppZdS/cmEAAAAAIBzV/yyC6QJaiK9detWF8hs27bNNedW/x49sc7fH2r//v1uP7+cOXMGVars3LnT7aOwRcHWa6+95qpoUrOaRT2NFJL4lS9f3gUmml6mME2VTXrK2/fff2+PPfaYXXXVVa56S7Rfq1atXHVOaLWX3qfrVx+oUNWrV3fVRkOHDk3ymLdv3+6qxnSvNWVvzJgxbgwyffp02717twt1Qp9MqGvReLt37x407S+UKrGyZMkS9XgUwKliTE9RDLVjxw4XwE2dOjXePdL3QT23VHWmgEuVUGqUf/fdd7sKpv/85z8JXr+fzh1pzPq8Lr74Yjfl8Y033oj6ugAAAAAA6RcVU2mUgpgSJUpYmTJlXNPtuXPnuvBF/aFU2ePp27ev28+/9OrVK+hYevqddyyFFepfpL5TqUlP3lMTb//y448/usbrmqKmMatpt6aGKWhSM+6vvvrKBSd6SqAqkcJVgikUatCgQYJ9nQYMGBCvIisa6qGk+6IxqYfSPffc4570Jzqf7ltoKCUap55u+NNPPwXWqWop9PoVKCaFpmCGC6VE1Vu5cuVy9yKU1um9Y8eODaxToKZgrUOHDpY9e/YEr9+/6LNIyCOPPOL6cdE7CgAAAAAQjQynUvvZ9gAQpX379v3f0/l6TLCM2XJy35JpXVz8akEAAAAAOJ2/49RbOTVmWlExBQAAAAAAgJggmEKKqJ9Q7ty5wy6amnc20rgijVnXc6aox1SkcajZOwAAAAAA5zqm8iFF1FBbSzjqa3T++eefdXd406ZNgafrhVJzcC1nwvr16+3YsWNhtxUrVszy5Mlj57rULgEFAAAAAKSt33E8lQ8pciaDnNRytoRlpUuXjvUQAAAAAACIKabyAQAAAAAAICYIpgAAAAAAABATTOUDEHPV+s2yjNly2rlmXVzzWA8BAAAAAM5qVEwBAAAAAAAgJgimAAAAAAAAEBMEUwCiMmrUKMufPz93CwAAAACQagimgCjUq1fPevToka4Do7Zt29qvv/562s8DAAAAAEg/aH4OpIJTp07ZiRMnLHPmc/c/qRw5crgFAAAAAIDUQsUUkIguXbrY119/ba+99pplyJDBLapS0t8vvvjCLr30UsuWLZstWLAgweP88ccfdsstt1ixYsUsd+7cVrt2bZs9e3bQPmXKlLHnnnvObrvtNrdP6dKlberUqbZjxw73Xq27+OKLbcmSJW7/efPm2R133GF79+4NjK1///6JfqZJPU+4yiydp2bNmjZmzBh3vHz58lm7du1s//79fKcAAAAAAFEhmAISoUDqqquusm7dutmWLVvcUqpUKbftiSeesLi4OFu9erULchJy4MABa9asmc2ZM8d+/PFHa9Kkid100022YcOGoP1effVVu/rqq90+zZs3t86dO7sAqVOnTrZs2TK76KKL3GtVadWpU8eGDBliefPmDYytZ8+eUX2mSTlPQmHblClTbPr06W5RgKf7AQAAAABANAimgESoEihr1qyWM2dOK168uFsyZcrktg0YMMAaNWrkQpyCBQsmeJwaNWrYPffcY9WqVbPy5cvbs88+696nSiU/hVfaT/v07dvX9u3b56qrWrdubRUqVLDevXu7IGzbtm1uXBqfKqW8sanaKRpJOU8kJ0+edJVUuqZrr73WhVsK3iI5cuSIO49/AQAAAACkXwRTQApcdtllUe+riilVM1WuXNlNiVOApOAntGLKX3mlaX9SvXr1eOu2b9+eos8uNc6jKXx58uQJvC5RokSC+w8aNMgFad7iVZ4BAAAAANIngikgBXLlyhX1vgqlJk+ebAMHDrT58+fb8uXLXRB09OjRoP2yZMkS+LcqoSKtU7VSSqTGefz7e+9JaP8+ffq4fljesnHjxhRdAwAAAAAgbTt3HyEGpCJNmdNT91Li22+/dY3UW7RoEaigWrdu3VkxtjNFTeK1AAAAAAAgVEwBUdCUte+//94FSf/880+yqpXUy2nSpEmuUmrFihXWoUOHFFc9eWNTyKXeThrboUOHUnxMAAAAAADOBIIpIMppeGp4XqVKFStSpEi8vlDReOWVV6xAgQLuSXp6Gl/jxo3tkksuSfH91/G6d+9ubdu2dWN78cUXU3xMAAAAAADOhAynEnoWPACcRnoqn2uC3mOCZcyW85y71+vimsd6CAAAAABwWn7HqW9w3rx5U3w8KqYAAAAAAAAQEwRTQCqpWrWq5c6dO+wybty4M3af9cS/SOPQAgAAAADA2YKpfEAqWb9+vR07dizstmLFilmePHnOyL0+fPiwbdq0KeL2cuXK2blaAgoAAAAASFu/4zKnyqgAWOnSpc+Ku5AjR46zKnwCAAAAACASpvIBAAAAAAAgJgimAAAAAAAAEBNM5QMQc9X6zbKM2XJaWrYurnmshwAAAAAAaQ4VUwAAAAAAAIgJgikAAAAAAADEBMEUAAAAAAAAYoJgCgAAAAAAADFBMJXOLVq0yDJlymTNm8dv3Dx58mS78sorLV++fJYnTx6rWrWq9ejRw22rV6+eZciQIeKi7YkpU6aM2/ejjz6Kt03n0rZRo0bF2zZo0CA35sGDBwfWTZw40a3btGlT2HOVL1/eHn300QTH3r1798D+/vV58+a12rVr22effWZJdfjwYStYsKAVLlzYjhw5Em+7jj9lypR467t06WK33npr4LU35ri4uHj76rPTtv79+0c1ptDrL1asmLVu3drWr18fdv/GjRu7e/vDDz8kOk4AAAAAAJKCYCqdGz58uD344IP2zTff2ObNmwPr58yZY23btrWWLVva4sWLbenSpfb888/bsWPH3PZJkybZli1b3KLtMnv27MA6bY9GqVKlbOTIkUHrvvvuO9u6davlypUr7HtGjBhhvXr1cn89N998sxUqVMg++OCDePvr2n7//Xfr2rVrYF23bt0CY/WWF198Meh9GpfWL1myxK6++mpr1aqV/fzzz5YUCswUslWqVClsAJUUulehQZ2COH1WJUqUSNKxvOvXZ67AbePGjdapU6d4+23YsMEWLlxoDzzwQND9BgAAAAAgNRBMpWMHDhywjz/+2O69915XdeMPPaZNm+bCmMcff9wqVqxoFSpUcJUxb775ptuuKqDixYu7pUiRIm6dgiFvnbZHo2PHjvb111+7YMSjAETrM2fOHG9/7asqpAEDBti+fftcaCJZsmSxzp07h62w0vGuuOIKFxB5cubMGRirt6gyyi9//vxuva792WeftePHj9vcuXMtqcGfAh8t+ndK3HjjjfbPP//Yt99+G1inIO6GG26wokWLJulY3vUr0FJVnIKnZcuWxdtP4ZzOq+/I+PHj3b0HAAAAACC1EEylYxMmTHCVPAqeFJwowDl16pTbptDil19+sZUrV57WMWgamaaKeZVOhw4dcmHZnXfeGXZ/hTvt27d3QZT++sMeVUT99ttvrkLKH759+umnQdVSSaVAyjtP1qxZo37fH3/84aZKtmnTxi3z58+POF0uGjq3Ajt/hZmCuEj3Klq7du1y3wWFd376Luhc+m7oe1KuXDl3L1NC0xkVKPoXAAAAAED6RTCVjnnVPNKkSRPbu3evq0gSTe9TX6Xq1au7XlDt2rVzwVW4PkkppWBFAYuCEAUfF110kdWsWTPefgoxtN0bs/4qUFH4JFWqVHHVP/4pZ9qu42r8fm+99Zblzp07aBk3blzQPgq+tD5btmz2yCOPuPuggClaGkfTpk2tQIECroJMAVzotMXk3Ctd08GDB10Ap89MFU1J5V2/pkuq0m3t2rXxpuppaqaCQo1bUqPqS/3B1LPMWzQ9EQAAAACQfhFMpVMKItQbSuGLaNqcekp5wYMCixkzZrjeTE899ZQLMR577DG7/PLLXViRmjSNUOGSghaFI5EqgDSVTKFVjRo13GuFV6VLl3YVVh69V+HV/v373WsdT4291bzdT5VHy5cvD1rUp8rv1Vdfdeu/+OILF3oNGzYs6imK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p06dsp49e1revHndcaLx448/WuvWra1YsWKWPXt2K1++vHXr1s1+/fXXoPvpLXny5HFj09h/++23qM4BAAAAAICHYAqnnQKOF154wXbv3p3gfgsWLLDDhw9bq1at7IMPPnDr6tSpY1u2bAksbdq0ceGQf532Saq1a9e6986aNcuOHDlizZs3t6NHjwbtE3oeLQqRojVgwAD3npUrV1qnTp1cwPPFF1/E22/48OHWq1cvd+x///037LH+/PNPGz16dNTnVojVtWtX9565c+davXr1En3P9OnT7corr3T3Y9y4cbZ69WobO3as5cuXz55++umgfWfPnu2ubcWKFTZw4EC3b40aNWzOnDlRjxEAAAAAAIIpnHYNGza04sWL26BBgxLcTwFNhw4drHPnzjZixAi3LmvWrO693pIjRw5XUeVfp32SqmjRou69l1xyifXo0cM2btxoa9asCdon9DxaChQoEPU5VE2k91x44YXWu3dvK1iwoH311VdB+/z111+2cOFCe+KJJ6xChQo2adKksMd68MEHrV+/fi40Soz2UdWTwqP58+fbpZdemuh7Dh06ZHfccYerHps6dar7zMqWLWtXXHGFvfTSS/buu+8G7V+oUKHAtd1yyy3uXNpXYVhoZRcAAAAAAJEQTOG00zQ1VdW8/vrr9vfff4fdZ//+/fbJJ5+4yqJGjRrZ3r17Xahyuuk8H330kft3cgKuaJw8edImTpzoKsZCzzFy5EhXraWqJF27wrlwFJ4dP37c3cOEHDhwwB1v1apV9u2331rFihWjGqMqx/755x9XuRWOpg0mJGPGjPbwww/b+vXrbenSpVGdEwAAAAAAgimcES1atHA9oFT1E47CIfUzUr8iBVnt2rWLGNKkhpIlS1ru3Lld4PLhhx/azTff7PpbhU5t0z7+RQFbtFQlpfeo8krTE1VtdddddwUFVuoRpUBKdM2azqgqqlDqU6V7p6ozhWmRPPvss66flkK9UqVKRT1Wrz9U6D1ICu+96kOVUDXXvn37ghYAAAAAQPpFMIUzRn2m1DtK/YhCaeqeF9CI/q0KKlVSnQ4KblTZo2BIU+jeeeedePvUr1/fhTz+pXv37lGf4/HHH3fv+d///uemub366qtWrly5wHZN6zt48KCbPieFCxd21WLeNMZQmianKXS6j5HccMMN7phJCdC8Rukp5R0jXFN7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rXbt2jZ79ux4096ee+45u+2229w+pUuXtqlTp9qOHTvce7Xu4osvtiVLlrj9582bZ3fccYft3bs3MLb+/fsnek1JPY9H13jttddajhw5rFSpUvbQQw/ZwYMHA9u3b99uN910k9tetmxZGzduXLxzh07l6927t1WoUMFy5sxpF154oT399NN27NixwHZdT82aNW3MmDFu3Pny5bN27drZ/v37E71OAAAAAACSFUwdOXLE6tatm6RFP5gPHDjAHUeqUiB11VVXWbdu3dw0NC0KZeSJJ56wuLg4W716tQtyEqLvZrNmzWzOnDn2448/WpMmTVyIs2HDhqD9Xn31Vbv66qvdPs2bN7fOnTu7AKlTp062bNkyu+iii9xrVWnVqVPH9W/KmzdvYGw9e/aM6rqSch4vWNOYW7ZsaT/99JN9/PHHLqh64IEHgkK8jRs32ty5c+3TTz+1t956y4VVCcmTJ48L+latWuXu9fvvv+/G5qdzK8yaPn26WxQU6r4DAAAAABCNJM9v0o9l7wcxEEuq0MmaNaur6PGmoa1Zs8b9HTBggDVq1Ciq49SoUcMtnmeffdYmT57sKpX84Y7Cq3vuucf9u2/fvvb222+76qrWrVsHKowUlG3bts2NR+NTFVJSp8gl9TyDBg2yjh07BnptlS9f3oYOHWrXXXede68CNlWQLV682B1Hhg8fbpUrV05wHE899VTg36qIUrD20UcfWa9evQLrT5486cIrhViiEE0B3/PPPx8x2Nbi2bdvX5LuDQAAAAAgnQdTVapUOT0jAVLRZZddFvW+qpjStLQZM2a4yqbjx4/b4cOH41VM+SuvNO1PqlevHm+dKpFS0q8pqedZsWKFq5TyT89TeKzQ6K+//rJff/3V9djS1EZPpUqVEm3MrsorBVyqitI90n1RBZifAisvlJISJUokWImlEO2ZZ56J8k4AAAAAAM519JjCOSlXrlxR76tKIFVIDRw40ObPn2/Lly93QdDRo0eD9suSJUvg36qEirROgVBKJPU8Co1UYaVxe4vCqt9++81N+0uORYsWuSosVW9pip4qJf/73/8meE+8sSV0/X369HF9t7xF0wsBAAAAAOkXjypDmqapfHrqXkp8++23rgdTixYtAkHPunXrzoqxReOSSy5xfaDKlSsXdruqo1TttHTp0sBUvrVr19qePXsiHnPhwoWu8brC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Ibv00kstW7ZsVrNmTUtvdG+nTJmSpPe8+eabVrlyZcuRI4dVrFjRRo8eHW+fTz75xCpVqmTZs2e36tWr2+eff56KowYAAAAAgGAK54g777zT2rZtG+thpAlvv/229enTx/r372+//PKLPfPMM3b//ffbtGnTAvssXLjQ2rdvb127drUff/zRbr31VresXLkypmMHAAAAAJxbqJhKR2bOnGnXXHON5c+f3woVKmQ33nij/fHHH0FVTR999JHVqVPHVclUq1bNvv7668D7d+/ebR07drQiRYq4Spvy5cvbyJEjEz1v2bJl3d9atWq5c9SrV8+9PnnypA0YMMBKliwZqHbSGD3RjEmGDh3qgpULL7wwWffl22+/dWPKmTOnFShQwBo3buyuVY4cOeIqsooWLerOr/v3ww8/BL1flUQVKlRw96R+/fpu3Kl1fq3X+Xv16mUFCxa04sWLu0DJP3VOWrRo4e6V9zohY8aMsXvuuccFebpn7dq1s7vvvtteeOGFwD6vvfaaNWnSxB5//HFXWfXss8/aJZdcYm+88UZgn+3bt9tNN93krluf8bhx45J03QAAAAAAEEylIwcPHrRHH33UlixZYnPmzLGMGTO6QEMBkUdBxGOPPeaqZK666ioXPOzcudNte/rpp23VqlX2xRdf2OrVq13lTeHChRM97+LFi93f2bNn25YtW2zSpEmB8OPll1+2l156yX766ScXyNx8883222+/Bb0/oTGllKYXNmjQwKpUqWKLFi2yBQsWuOOfOHHCbVcgNHHiRPvggw9s2bJlVq5cOTfOXbt2ue0bN260//znP+49OtZdd91lTzzxRKqdX3TuXLly2ffff28vvviiC/O++uort80LyRQQ6t6GhmbhKGxTyOancEmf07Fjx9xrjaVhw4ZB++i6td7TpUsXd/1z5861Tz/91N566y0XViV27n379gUtAAAAAID0K3OsB4Azp2XLlkGvR4wY4aqfFDblzp3brXvggQcC+yl4UgXT8OHDXUCzYcMGV/V02WWXue3RVOeIziGq0lLFj0eBVO/evV3FjqhiRyGHmmerB5InoTGllIIeXY9CFU/VqlUDQZ7ON2rUKGvatKlb9/7777tQSOdXYKbtF110kQvYRP2afv7556Dqo+Se33PxxRdbv3793L9VpaaqJQWLjRo1CtxbVcH5721CFDANGzbM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mjVrbNasWbHenRRr9erVdtNNN1mePHnc+bz00ktt8+bN/vlHjx61bt26WYECBSxnzpzWqlUr27FjR0z3GQAAAACQuhBMIcVZv369XXnllVa6dGkXmoRz4sSJc75fKfEcVqlSxVU5/fbbb/b000+7KjTPI488Yl988YV98sknNnfuXPvnn3/slltuiel+AwAAAABSF4KpFGrGjBkuWMibN68LZ2644QYXNsjGjRvdcKqJEyda/fr1XdhQvXp1Fy549uzZY3feeacVKlTIsmXLZhUrVrRx48ZFtO2///7b2rZta/nz53eVNnXq1LGFCxf6548ePdrKly9vmTNntsqVK9v7778f9Pk///zTrrrqKrdfF154oX377bcRH7eOa8mSJTZo0CD384ABA/zH+/HHH9vVV1/t1jthwgS3/DvvvGNVq1Z17ymEef3114PWt2jRIqtdu7abr+OYMmWKW9eyZcsiHrY2c+ZMtw6dx2uvvdZ27txp06dPd9vNnTu33XHHHXb48GH/506fPm1Dhw61smXLus/UqlXLPv30U//8U6dOWadOnfzzdQ5ffvnloG136NDBWrRoYS+88IIVK1bM3QOqboo0kHvqqaesWbNm9vzzz7t91/VS9VThwoXd/H379tmYMWPsxRdfdMd0ySWXuPvj559/tgULFvjX8/XXX1ulSpXcfl5zzTXuWgAAAAAAEKmMES+J88qhQ4esZ8+eVrNmTTt48KD169fPWrZsGRSo9OrVy0aOHOnCHwUMN954o23YsMGFGKqO+f33312AUrBgQVu3bp0dOXIk0e1qWwp/SpQoYdOmTbOiRYvar7/+6sIWUbDTvXt3t91GjRrZl19+affcc49dcMEFLrjQcqq6KVKkiAuzFID06NEj4uPetm2bW2+TJk3ssccec0PM/vvvPzfviSeesBEjRviDJoVTOi+jRo1y7y1dutQ6d+7swrT27du7Y1Ggd91119kHH3zgzo32PakUjmkb2bNnt9atW7spS5Ys9uGHH7pt6Lq8+uqr9vjjj7vlFUppe2+88YYLBH/44Qe76667XEioc6tzpPOlSiVdK4VB9913nwugtG7P999/797Tn7p+bdq0cT23dIwJ0fq/+uor6927tzVu3NidF4Vgffr0cWGXKPxTyKVz7VGwV6pUKZs/f77r8bVlyxZ3LRWIaf8WL15sjz76aJLP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pucpU6aM+7Nly5aucsp77Xn//ffdewpqbr/9djtw4EBExzJjxgy78sorLW/evFagQAG74YYbbP369f75GzdudNubNGmS/e9//7Ns2bLZpZdeamvXrrVffvnF6tSpYzlz5rSmTZvav//+6z6j/X733Xft888/d5/VNGfOnAT3IznbCVeZldh5TIj2MXPmzDZv3jz/e88//7wVLlzYduzYEdE6AAAAAABpG8EUzgkFLwULFrRFixa5kKpr16522223Wf369e3XX3+166+/3tq1a2eHDx+2rVu3WrNmzVzQsnz5chs9erSNGTPGnn322TjrzJEjhy1cuNAFIoMGDbJvv/3WzVM4I+PGjbNt27b5X4uCJA3x+/LLL92kEGzYsGERHYfCtJ49e9rixYtt1qxZlj59ehd+nT59Omi5/v37W9++fd2xZcyY0e644w4X/mgonYKcdevWWb9+/dyyjz32mLVu3dqaNGni9lWTzkskkrKdhK5NfOcxIQq1FDbquu3bt8+WLl1qTz/9tL3zzjsufAzn2LFjtn///qAJAAAAAJB2MZQP50StWrVcgCJ9+vRxQZCCqs6dO7v3FJ4ogPrtt9/siy++sJIlS9qoUaNcVVCVKlXsn3/+sccff9wtpzBIatas6YIZqVixolteYdF1111nhQoVcu+rsklVQIEUIqnPkiq1RMGKPjd48OBEj6NVq1ZBr8eOHeu29fvvv1v16tX97ytsaty4sfu5e/fu1rZtW7eNK664wr3XqVMnf68nVTap4kmhTei+JiYp24lPQucxMQoLFWLdd999tnLlSmvfvr3ddNNN8S4/dOhQGzhwYJKOEQAAAACQelExhXNC4YcnQ4YMbhhcjRo1/O95FTY7d+601atX2+WXX+5CKY+CloMHD9rff/8ddp2iIX/6fGI0hM8LpZLyOfnzzz9d+FOuXDnLnTu3f4jg5s2b4z1e79hCjzfSbSYkGttJ7nkUDeWbMGGCffbZZ3b06FF76aWXElxeoaSqq7xpy5YtEW0HAAAAAJA6UTGFcyJTpkxBrxU6Bb7nhVChQ+KSus5IPp/cz8mNN95opUuXdj2yihcv7j6nSqnjx4/Huw3v2ELfS8qxxica2zmT8yE///yz+3P37t1u0rDA+KhnmCYAAAAAAISKKZx3qlatavPnzzefz+d/76effnJVThdccEHE61HgcurU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C9qxY8fce2vXrrXs2bPbhx9+GLTs6dOnrX79+nbrrbdG5VzMmTPH7efevXvDHsfIkSP9r71jWrBgQdBy2ucCBQq4eVpfJALPacaMGa1UqVLWs2dP//Endn4S2k8AAAAAAJKCYApRN2bMGHvooYfshx9+sH/++cf//qxZs6xNmzbWqlUrW7RokS1ZssQGDx5sJ06ccPMnT55s27Ztc5Pmy3fffed/T/MjMWjQILf8mjVr7L333rO8efNao0aN3LZCffbZZy4cq1Klik2dOtW9V6lSJRs2bJg7Bq3HM2LECPvrr7/sjTfeOONzkRwlS5a0cePGxQn6cubMmeR1aT06tg0bNtjrr79u77//vj377LMRnR8AAAAAAKKFp/Ihqg4ePGgff/yxLV682LZv327jx4+3J5980s374osv7IorrrBevXr5l1cI1KJFC/ezKnM8R48edX+qGqho0aJJ2gdVYnmfUTXQVVddZcWKFbN+/fq5aqfKlSsHBUd33XWX+Xw+97OCM1GYpCCmc+fO9uWXX9off/zhPq9jU/XQmZ6L5Gjfvr298sorrkJJ1WAyduxY9/4zzzyTpHUprPPOkQKvm2++2X799dc4y8V3fgAAAAAAiAYqphBVkyZNctU1Cn8UaCg4UaghCkJWrVplK1euPOdnvXv37m4/Pv/8c/9769evd0PtNNRP07x582zTpk1unoa5qapI77399tvWoUMHu/322+2mm26KyrlIjksuucQNnVMVk2zevNlVYrVr187OhIYuaqhjvXr1gt5P6PwAAAAAABANBFOIKq/CRpo0aWL79u2zuXPn+quQLr30UqtRo4YLWBT0KKwJ17so2lSNVbhwYdu4caP/PW27adOmli9fPje/cePGQUPlSpcu7aqTunTp4oa9vfzyy1E7F8nVsWNHt9+iCqxmzZpZoUKFkryetm3buiGAWbNmdcGZhuv16dMnaJnEzk9y6Frv378/aAIAAAAApF0EU4ga9XRSbyiFHqLG2hr6pYBGcuTIYV999ZWtW7fO+vbt64KRRx991OrWrWuHDx8+61dC1UqqhJJTp07Zu+++6w+ORD8r7FGTc88999zjhgEqVMudO3fUzkVyaR9VxaReV9pXBVXJ8dJLL9myZcts+fLlbqiiqqYCK68iPT9JNXToUNf43ps0jBAAAAAAkHbRYwpRo9Dl5MmTVrx48aAwKEuWLDZq1CgXREj58uXddO+999pTTz3l+kypF5NCoLNl165d9u+//1rZsmXd65kzZ9rWrVvj9ExSIKMm7dddd53/PYVKmqJ9LrygS5VU6vkUSE/q885XIPXcuuGGG6xTp06uD5cqmg4cOGBJpWGVFSpUcD+rYkrrUIimBuh6PynnJylUlaUnAHpUMUU4BQAAAABpFxVTiAqFMHoCnp5cp0ocb1JFjsKZjz76KOznNKQve/bsdujQobN6JTQML3369P5G6wqONJQwcF816b0zrWqK9FxUrFjR7ZOeThhI1VAKqxTYhaMqqTlz5tjdd99tGTJksGjw1nPkyJGzen4UzCmQC5wAAAAAAGkXFVOICg0H27Nnj6vkCa30adWqlQsz9GQ6DdlTXyT1b1JVkJ4yd+LEiWRX4ISj6h9tS+vdsGGDffDBB/bOO++4YWSqBlLllJ4QOG3aNKtevXrQZxX2tGzZ0nbv3h30lMBonwv1rdLTA1U1puGMqshS760tW7bY448/bpdddpnVr18/7PrVr0rHcCahjs69zpGG5f355582aNAgF4RVrVo1yedHlVUKrQLp+qo3FQAAAAAACaFiClGhsKVRo0Zhh58pjFm8eLELKlQNpHBDT6vTMDSFI998840bThYt/fr1c32hFEKpb5KqjzT8TIGPqJpJ/a4aNmwY57N6L1u2bC7MOpvn4rfffvNXcrVv397tmxqQ6+l/NWvWdMGQ1w8rlN4vWLCgZc6cOdn76PXOuuCCC9wQPm17+vTpLiBL6vl54YUXrHbt2kGTeokBAAAAAJCYdL4zeX49AJwB9ZhyTdB7TLL0WbKf0bncOKw51wIAAAAAztH3OBWBRKM9CxVTAAAAAAAAiAmCKaQYEyZMsJw5c4adNBTtXNm8eXO8+6FJ82NlyJAh8e6Xhk4CAAAAAHA+YSgfUgw1Nd+xY0fYeZkyZXINt88FPXVv48aN8c7XkwbVqykW1JRcUzjqDVWiRAlLzSWgAAAAAICU9T2Op/IhxdBT7DTFmkInNVY/H+lJecl9miAAAAAAAOcaQ/kAAAAAAAAQEwRTAAAAAAAAiAmCKQAAAAAAAMQEPaYAxFz1/jMtfZbsZ7SOjcOaR21/AAAAAADnBhVTAAAAAAAAiAmCKQAAAAAAAMQEwRQAAAAAAABigmAqxubPn28ZMmSw5s3j9seZMmWKXXbZZZYnTx7LlSuXVatWzXr06OGff+rUKRs2bJhVqVLFsmXLZvnz57d69erZO++841+mQ4cOli5dujhTkyZNbM6cOWHnBU5aJhJHjhxx2y9YsKAdO3Ysznyta+rUqXHe1/61aNHC/7pBgwZuWR1XKJ0jzRswYIBFat26ddaxY0crVaqUZcmSxUqUKGENGza0CRMm2MmTJ4P2z5ty585tl156qX3++edhj7N///5WqVIltz4d72233WarVq3yLzNjxgy3nu3btwd9tlixYlamTJmg9zZu3OiWHTNmTKLXYvz48f5rtnfv3jj7pnWPHDkyovOyfPlyu+mmm6xw4cKWNWtW99k2bdrYzp07/fPbtm1rJUuWdPdW1apV7eWXX/Z//plnnnHHs3v37jjr1Xn58ssvI9oPAAAAAEDaRjAVYwokHnroIfvhhx/sn3/+8b8/a9YsFxS0atXKFi1aZEuWLLHBgwfbiRMn/MsMHDjQXnrpJRcS/P777/b999/bfffdFye0UAi1bdu2oOmjjz6y+vXrB73XunXrOMtqmUh89tlnLjhTSBYugEoKhSEKYQJt3brVnROFIZHSebv44ott9erV9tprr9nKlStdsHPvvffa6NGjg8IkGTdunDvmxYsX2xVXXGG33nqrrVixwj9fgVujRo1s7Nix9uyzz9ratWvt66+/dgGXAsEFCxa45a688krLmDFjUKinfVCotWfPHhdGeXTNFOTcfvvtQef90Ucfdecz8D3dD9Hw77//unBOQeLMmTPdvunYixcvbocOHXLL6H5TaPXBBx+48/TUU09Znz59bNSoUW6+ftZ16tatm3+9ujfbt29vd911l91www1R2VcAAAAAQOrGU/li6ODBg/bxxx+7IETVNQpjnnzySTfviy++cOFIr169/MurSiewumjatGn2wAMPuIodT61ateJsR8FH0aJFw+5D4PuqjFH4Et+yiQVsCiR8Pp/7+UxCFIUakyZNsp9++smdA3n33Xft+uuvt82bN0e0Du2HqrF0zrSe9On/L4OtWLGiqwbSMoHy5s3rjl2Twj5VCCk4qlGjhpuvaiRVuC1dutR/nkuXLu1COQVTnTp1cuFXzpw5XcWVgikFTqKfFVidPn3a/ax9895XVVyOHDnc5NE6FG4l51okRudj3759rrJO25CyZcvaNddc419GVWaBypUr5459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pc+SPVmf3TisedT3BwAAAABwblAxBQAAAAAAgJggmAIAAAAAAEBMEEzhrBswYIBddNFFCS7ToEED69GjR0TrO3z4sLVq1co9ljJdunS2d+/eKO0pokHXZOrUqZxMAAAAAECiCKaQ4rz77rs2b948+/nnn23btm2WJ0+eWO9SinPixAkbNGiQlS9f3rJmzWq1atWyGTNmxFnutddeszJlyrhl6tWrZ4sWLYrJ/gIAAAAAUieCKaQ469evt6pVq1r16tWtaNGirkIn1PHjx2OybylF37597c0337RXX33Vfv/9d+vSpYu1bNnSli5d6l/m448/tp49e1r//v3t119/deFV48aNbefOnTHddwAAAABA6kEwlYqo4uXKK6+0vHnzWoECBeyGG25wIY5s3LjRBTgTJ060+vXruwoYBTtz5871f37Pnj125513WqFChSxbtmxWsWJFGzduXETb/vvvv61t27aWP39+y5Ejh9WpU8cWLlwYtMz777/vqm9U4XT77bfbgQMHknyMGvI3YsQI++GHH9zx6LVovc8884zdfffdbojffffd597/8ccf7X//+587npIlS9rDDz9shw4d8q9PIcuNN97o5pctW9YmTJjg1jVy5MiI9kf7oIBH5zp79uwuMJs/f76tW7fO7ZvOhc63dx08n3/+uV188cXuOpQrV84GDhxoJ0+e9M9/8cUXrUaNGu7z2u8HHnjADh486J8/fvx4d51nzpzptpkzZ05r0qSJqyCLhK7Fk08+ac2aNXPb79q1q/tZ5zZwHzp37mz33HOPXXjhhfbGG2+4Yxw7dqx/mT///NOuuuoqdxxa5ttvv41o+wAAAAAACMFUKqLARRUuixcvtlmzZln69OldFczp06f9y/Tq1cseffRRVxlz+eWXu1Bm165dbt7TTz/tqmemT59uq1evttGjR1vBggUT3a4Ck6uvvtq2bt1q06ZNs+XLl1vv3r2DtqtgRn2HvvzySzcpEBs2bFiSj3Hy5MkuLNG+K4TRa88LL7zgqnp0bDoWbVNhjfpR/fbbb64CSEHVgw8+6P9Mhw4dbMuWLfb999/bp59+aq+//nqSK4K8QGzZsmVWpUoVu+OOO+z++++3Pn36uGvh8/mCtqlhiFq+e/fu7nwr2FLQNHjwYP8yunavvPKKrVq1yg1dnD17tjunob22dMwKmRTUbd682R57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AhX9+c8//1jx4sXd+7NmzbI2bdrY4MGD7aabbnJhzu+//27ffvut/7MDBw60N99800aNGuUCmv3799vixYttz549QdtQCDVu3Lig97JkyWI5cuSwbdu2+d/r3r27W0fgsgq7EpM7d25bs2aNC4727t1rP//8sw0dOtSt56effvIfU+C+HDt2zL7++mvr1q2bZcqUyfr06ZPodtq1a2eTJ0+2vn37umMuVKiQLV++3AVTZcqUsU6dOrn3tf369evHCdAKFy5szZo1S3Q7AAAAAAAQTCHVO3jwoH388ccuTNq+fbsLT5588kk374svvrArrrjCevXq5V++UqVK1qJFC/9rVf888MADdtttt/nfq1WrVpztKIQqWrRo2H0IfF9VVwqM4ls2PgrNvM8UK1bMVS3deOONrsKrd+/e9sEHH4Tdl65du7qqMB1HYsHUpEmTbMKECTZ16lS7+eab/e8rkFJwp0BNlWUXX3yxjR07NiiYUmCmc9u+fXvLmJFfLQAAAACAxDGUD6mewhYNw6tcubLdddddLlBRiCIKb1atWmUrV66M9/NaZvbs2fbvv//a+UbVSXfeeacLnTTkMD4Kw44fP57o+hRK6TwFhlKBwZhCKVHVlM7roUOH/PM1HHHDhg3WsWPHZB8PAAAAACBtIZhCqqfhewqkvCFu6sk0d+5c91rD+y699FKrUaOGqwq6/fbbXXCliibPiy++6EIpBVQ1a9a0Ll262PTp0+Ns58svv3Q9mQKnIUOGnPXjU+h24MAB27VrV5x5CuC+++47mzlzpl177bWJruvPP/90wVRi7rjjDjtx4oR98skn/vc0dPDKK690FWfx0XlV1VXgBAAAAABIuwimkKqpJ9OiRYusbdu27rWGmKmnlMIqUf+nr776ytatW+d6KilMevTRR61u3bqu0bdceOGFrqJqwYIFrhpo586dbgjdvffeG7Sta665xpYtWxY0KcQ627zqL1U0hYZkWbNmtaZNm7pjHjBgQMTrSowaot9yyy0uxBMFTJ999pmrpEqIemKp6sqbSpYsGdH2AAAAAACpE41gkKopgNLT6AIbgyt8UQ8mNfD2hqaVL1/eTQqbnnrqKVf1o75U99xzj5ufPn16V1mlSU/sUz8nNQnXsmXLlvWHXHoC3rm2evVq1xi9QIECQSHZ6NGj3VP5dOyR9nzScf/xxx8RLasQqmHDhi7U+/77793T+AL7cIWjHlc9e/b0v1agRTgFAAAAAGkXFVNItRRIvffeezZixIigKiY9YU5hzUcffRT2cxrSlz179qD+SaFURSUJLXMuqHrrww8/dM3aFZ55vJCsVKlSSWpEriF6a9eutc8//zzOPAV6GgYZGH4plNMQPk0aBqntJkSBoEK0wAkAAAAAkHZRMYVUS8PZ9uzZ4yp7vMooT6tWrVw1lZ7SpyF7zZo1s9KlS9vevXvtlVdecf2TrrvuOrfsrbfe6p7cpyfQqc+UGnyr8kfVRervFNg/SesLpFCoYMGCUTkeBUNav/7Ufs6fP9/1sNKxDRs2LCrbaN26tXuCn4Y+amjj9ddfb4UKFbIVK1bYSy+95HpyeU8s1NBBDW1UDy6dZ80HAAAAACApqJhCqqXgqVGjRnFCKS+YWrx4seXLl8/++usvu/vuu13IpH5MCn+++eYbfxPwxo0b2xdffOH6SimMat++vVtWywRWI82YMcOKFSsWNKkZeLRo2JvWWaJECbv88svtzTffdPuydOlS9340KGxSBZbCpqlTp9rVV1/tGr6rP5We1KdzEahDhw6uiqpatWpWr169qOwDAAAAACDtSOeLtNsxAESZwjbXBL3HJEufJXuy1rFxWHOuCwAAAACc4+9xKlKIRnsWKqYAAAAAAAAQEwRTwHlAQ+Fy5swZdpowYULUtqOhivFtR/2qAAAAAAA4lxjKB5wHNm3a5Bquh1OkSBHLlStXVLazdetWO3LkSNh5+fPnd1NKLgEFAAAAAKSs73E8lQ84D+iJgOeCGqcDAAAAAHC+YCgfAAAAAAAAYoJgCgAAAAAAADFBMAUAAAAAAICYoMcUgJir3n+mpc+SPVmf3TisedT3BwAAAABwblAxBQAAAAAAgJggmAIAAAAAAEBMEEwBAAAAAAAgJs6rYKpDhw6WLl06GzZsWND7U6dOde+HqlKlimXJksW2b9/uXs+ZM8ctl9CkZQYMGGAXXXRRnPVt3LjRLbNs2bKw6ytUqJA1a9bMVqxYEXa/Q6cmTZok6fiHDh1qGTJksOHDh4edr+Ps3r27VahQwbJmzWpFihSxK664wkaPHm2HDx/2L1emTJmw+xN6XuMzZcoUu+yyyyxPnjyWK1cuq1atmvXo0cM/f/z48WHXr32SU6dOWf369e2WW24JWu++ffusZMmS9tRTTyW6D9618Kb8+fPb1VdfbfPmzQu7/P333+/O3SeffBJnnq631tGlS5eg93Wd9b62Fe76y4EDB+yaa66xCy+80P7++++I9tn7vPe6cOHCbj2BdP9pv0KPM9yk853Qve3d/95xatK50Lm+7777bPfu3XH29ciRI+6cFixY0I4dOxb2eD777DNr0KCBuw9y5sxpNWvWtEGDBrn16f2E9lnzAQAAAABIUcGUKNx47rnnbM+ePQku9+OPP7ov17feequ9++677j2FIdu2bfNPrVu3duFQ4HtaJqnWrFnjPjtz5kz3Jb558+Z2/PjxoGVCt6Ppo48+StJ2xo4da71793Z/hvrrr7+sdu3a9s0339iQIUNs6dKlNn/+fLf8l19+ad99913Q8goQQvfnoYceSnQfZs2aZW3atLFWrVrZokWLbMmSJTZ48GA7ceJE0HK5c+eOs/5Nmza5eQpFFKbMmDHDJkyY4P+Mtq8wpH///hGfEx2X1v3DDz9Y8eLF7YYbbrAdO3YELaNQbuLEifGeO+++GjNmjP35558Rb/vff/91odShQ4dcIHbBBRdYciiUeuGFF8LOU3gUeA4fffRRFwQGvqfrEXovBk4KvjzeZzdv3mzjxo1z16Br165hQyctq3BXwW8ohYfa7qWXXmrTp0+3lStX2ogRI2z58uX2/vvv2+TJk/3b130SeK00aT4AAAAAACnuqXyNGjWydevWueqh559/Pt7lFDLccccdropGVUSPP/64Zc6c2YoWLepfJlu2bC5ICnwvOfTFP2/evG49qhy66aab7I8//nAVJB5Vbp3JdubOneuCNgVK7733nv38889BIdoDDzxgGTNmtMWLF1uOHDn875crV85uvvlm8/l8QetTpVNy9ueLL75wVVi9evXyv1epUiVr0aJF0HKqiklo/fqMKrQURl177bUuvFB49Msvv7jrFKkCBQq47Wh68skn3ToWLlzoroFHVVKqaHriiSdceLVlyxYX+ASqXLmyu44KXCZNmpTodrWO6667zkqUKGGff/65qxhKLp2DF1980bp16xYUInkhXuB51HZ0neM7t969GJ/Az2rfb7vtNhdQhfvv56677nL3jX4ODL90rRR+jhw50v23FViJp3Oyd+/eoH04evRo0LUCAAAAACDFVnnfVBQAAB/mSURBVEzpi7q+FL/66qvxDp1SBYrCCH2x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+/rrr7ncqeAe6tChQ5zfS02aNAlahnso7Ro6dKhdeumllitXLvd3TosWLWzNmjVBy5zLv7v491TqvIcaNGgQ5/dQly5dgpbhHkq7Ro8ebTVr1nT/jtF0+eWX2/Tp01Pu7yA1PweAc23ixIm+zJkz+8aOHetbtWqVr3Pnzr68efP6duzYwcVIY/r37++rVq2ab9u2bf7p33//9c/v0qWLr2TJkr5Zs2b5Fi9e7Lvssst89evX988/efKkr3r16r5GjRr5li5d6vv66699BQsW9PXp08e/zF9//eXLnj27r2fPnr7ff//d9+qrr/oyZMjgmzFjxjk/Xpw5XeOnnnrKN3nyZD3AxTdlypSg+cOGDfPlyZPHN3XqVN/y5ct9N910k69s2bK+I0eO+Jdp0qSJr1atWr4FCxb45s2b56tQoYKvbdu2/vn79u3zFSlSxHfnnXf6Vq5c6fvoo4982bJl87355pv+ZX766Sd3Hz3//PPuvurbt68vU6ZMvhUrVnCZU/g91L59e3ePBP5e2r17d9Ay3ENpV+PGjX3jxo1zvxuWLVvma9asma9UqVK+gwcPnvO/u/j3VOq9h66++mr37+PA30P6u8nDPZS2TZs2zffVV1/51q5d61uzZo3vySefdP8G0T2VEn8HEUwBiIm6dev6unXr5n996tQpX/HixX1Dhw7liqTBYEoBQTh79+51f8l+8skn/vdWr17tvkjOnz/fvdZfpOnTp/dt377dv8zo0aN9uXPn9h07dsy97t27twu/ArVp08b9wxApW2iocPr0aV/RokV9w4cPD7qPsmTJ4sIl0T+u9LlffvnFv8z06dN96dKl823dutW9fv3113358uXz30Py+OOP+ypXrux/3bp1a1/z5s2D9qdevXq++++//ywdLc6G+IKpm2++Od7PcA8h0M6dO919NHfu3HP+dxf/nkqd95AXTHXv3j3ez3APIZT+3fLOO++kyN9BDOUDcM4dP37clixZ4obXeNKnT+9ez58/nyuSBmmYlYbUlCtXzg2vUmmx6D45ceJE0L2iYVOlSpXy3yv6U0OoihQp4l+mcePGtn//flu1apV/mcB1eMtwv6U+GzZssO3btwdd7zx58rjS8sB7RsP36tSp419Gy+v30MKFC/3LXHXVVZY5c+age0ZDLfbs2eNfhvsq9dLwBQ1tqFy5snXt2tV27drl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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                      feature    importance\n",
      "167             NTRL_CUST_AGE  28966.116070\n",
      "63          AST_YAVER_AUM_BAL  14525.055806\n",
      "61          AST_SAVER_AUM_BAL  14283.349836\n",
      "151   NATURE_AGE_BY_RANK_DIFF   7342.131985\n",
      "161             NATURE_IS_OLD   4425.150612\n",
      "153    NATURE_AGE_BY_RANK_STD   3434.409162\n",
      "155  NATURE_AGE_RANK_INTERACT   3083.671587\n",
      "222       TPAY_WX_SEAN_TR_CNT   3004.065488\n",
      "67        DEBT_LOAN_BAL_MAVER   2795.345214\n",
      "958                tr_amt_min   1892.479248\n",
      "\n",
      "================================================================================\n",
      "\n",
      "CatBoost特征重要性 (Top 30):\n"
     ]
    },
    {
     "data": {
      "image/png": "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AKmOUApJ0r59e0uXLp3FxMQErZ8+fbpbH6p8+fKWJUsW27Fjh3u9cOFCt19ci/bp16+fXX311bGOt3nzZrfPqlWrwh7voosusoYNG9qaNWvCjjt0qV+/flTXXbJkSRsyZEjg9erVq+2OO+6wQoUKWdasWd32Fi1a2K5du+I9lncNGTJksK1btwZt2759u2XMmNFt137hrtl77S25cuWyihUrWqdOneyXX34JOt6YMWMC++l8+fLls6pVq1r//v3twIEDse5R48aN47wH4e5h6HcBAAAAAIBwCKWQZAphXnzxRdu3b1+c+y1ZssSOHTtmTZs2tbFjx7p11apVc8GLtzRv3twFQ/512iehNm7c6N47d+5cO378uDVq1MhOnDgRtE/oebRMmjQpwefavXu31a5d2/Lnz+/O99NPP9no0aPt4osvtiNHjkR9nEsuucTGjRsXtE73SeujMX/+fHcNCsgGDhzoxnHVVVfZF198EbRf7ty53X5//fWXffPNN/bggw+68yr027ZtmyWEwqzQe9ilS5cEHQMAAAAAkDYRSiHJ6tSpY0WKFLFBgwbFud/IkSOtdevW1q5dOxs1apRblzlzZvdeb8mWLZurpPKv0z4JpYolvfeaa66xbt262Z9//mkbNmwI2if0PFpUOZRQX3/9tasyGjFihFWpUsVKlSpltWrVstdee839Ha177rnHhVl+eq310ShQoIC7hssuu8zuvPNOF1KpCur++++3f//9N7Cfqpm0X9GiRe2KK65w2xVOHT582Hr27JmAKzdXlRV6D3PkyJGgYwAAAAAA0iZCKSSZpoGpMueNN95w1TfhHDp0yD766CNr27at1a1b14U4ixcvTvG7r/N88MEH7u/EhFvRUBBz6tQpmzZtmp05cybRx9H0P1WbqaJM9K9e33777Yk6Xvr06a1r1672xx9/2IoVK+IN8dq0aWMzZswICrAAAAAAAEgphFJIFnfddZeb/tW3b9+w2xUMXX755a7XkUKsli1busqplFKsWDHLmTOn5c2b195//30X+Kifld+sWbPcPv5F4VpC3XjjjfbUU0+5KrCCBQtagwYNbPDgwbZz584EHSdTpkwutPOqyPSvXmt9YnnX7PWjim9fhYd79uyJ+vi9evWKdQ/jChs1lfLgwYNBCwAAAAAgbSKUQrJRXyn1QFIvo1BewOLR36qcUgiSEhSMqDpIjb3Lli1rw4cPj7WPptipWbh/6dixY6LO98ILL7jm7TqPgjf9q5AntMF6fO677z53X3Qs/avXSeFVboVrOp+UfT09evSIdQ+vu+66iPtrimeePHkCS/HixaM+FwAAAADgwkIohWRTo0YNq1evnvXu3Tto/fr16+3bb791/Yr0JDktqi46evRoYGpdfNScO/TpcLJ//373rwIOP/VyKleunOvH9MADD7gn4YVS76MyZcoELWpWnljq6dSsWTN7+eWXXTCnRuf6OyEqV67swqxWrVq5fk+VKlWypPACwmh6W2lf3WddR7RUGRZ6D9UXLBJ9N/Q5eot6fQEAAAAA0iZCKSSrmJgYmzlzpi1dujSwTtP0FFjpqXD+ipru3btHPYVPAZP6VYVOiVu5cqV7+t+ll14a8b2dOnWytWvXup5PqUX9q0qXLp2gp+95VB21cOHCJFdJnT592oYOHeoCKTVgj8uuXbvcNMfGjRu7XlQpRc3lFXz5FwAAAABA2pTxbA8AFxZV+qhhtsIQOXnypI0fP9769+8fq+pHFUyvvvqqrVu3zk15i4sqsBRMqYLo+eefd83FFUg988wzrpm3+lRFkj17duvQoYPrd6XQxZuepv5GmibnpyouVf8khHpTqeJLfbI0VVDT4BTMffrpp7GephcNjVUVV+qHlRDqBaXrUQWaQrghQ4bYsmXLbPbs2UH3R+PTfvpXlWYKENVLS9VmChX9VM2kANFPlVTetDtNvwy9h7rfhE0AAAAAgPhQKYVkpwBKVTqip7kpLFEj9FCanqYlmmophUXz5s1zFVEKphRwKWRSIDVgwIB439+5c2c3PU19mjxz5syxokWLBi033XRTgq+3QoUKLoh5/PHHXbN3TU2cPHmyjRgxwtq1a5fg43nBmP5NiDp16rhrUDD45JNPunv7448/ut5Zfmourv0uueQS+89//mPvvPOOm+b4ww8/uPV+qthSlZV/ee655wLb+/TpE+seapomAAAAAADxSXcmKc+wB4AkUEDmGp53m2zps2TnXl6gNsc0OttDAAAAAHAWfutp9k1cM2molAIAAAAAAECqI5QCQkycONFy5swZdomv91U4HTt2jHg8bQMAAAAAIC1i+h4QQs27Q5/y58mUKZOVKFEiQfdMT7ZT6WI4KmMsVKhQmv0Moi3pBAAAAABceL/1ePoeECJX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17Z69WobOHCg2/eqq66yL774IuoxAgAAAADSNkIppLg6depYkSJFbNCgQXHup3CmdevW1q5dOxs1apRblzlzZvdeb8mWLZurpPKv0z4JVahQIffea665xrp162Z//vmnbdiwIWif0PNoyZcvX9TnUBWR3nPZZZdZr169LH/+/Pb5558H7fP777/bN998Y08++aSVLVvWpk6dGvZYXbp0sb59+7rAKD7aR9VOCo4WL15s1157bbzvOXr0qN17772uamzGjBnuMytVqpRVrVrVXn75ZXvnnXeC9i9QoEDg2u688053Lu2rICy0ogsAAAAAgHAIpZDiNDVN1TRvvPGG/fXXX2H3OXTokH300Ueuoqhu3bp24MABF6ikNJ3ngw8+cH8nJtyKxunTp23KlCmuUiz0HKNHj3ZVWqpG0rUrmAtHwdmpU6fcPYzL4cOH3fHWr19vX3/9tZUrVy6qMapi7O+//3YVW+FoqmBc0qdPb127drU//vjDVqxYEWdgdvDgwaAFAAAAAJA2EUohVdx1112u55OqfcJRMKT+RepPpBCrZcuWEQOa5FCsWDHLmTOnC1vef/99u+OOO1w/q9DpbNrHvyhci5aqo/QeVVxpSqKqrB544IGgsEo9oRRGia5ZUxhVPRVKfal071RtpiAtkgEDBrj+WQr0ihcvHvVYvX5QofcgIbz3qu9UJBq/AjhvScgYAQAAAAAXFkIppBr1lVKvKPUfCqXpel44I/pblVOqoEoJCm1U0aNQSNPmhg8fHmufWrVquYDHv3Ts2DHqc/To0cO958svv3RT21577TUrU6ZMYLum8h05csRNmZOCBQu6KjFv6mIoTY3TtDndx0huvfVWd8yEhGdeU/Sk8o4RroG9p3fv3i5U8xZNmwQAAAAApE2EUkg1NWrUsHr16rlgwk9Tzb799ls3dSxjxoxuUcNt9TnyptbFR0+YC1dBtH//fvevqnL81C9JU9vuueceV73UokWLWO/NkSOHC5H8i/pCRUshk97z3//+1wVsjz76qLtWjyrB9u7d6/pkedf96aefuuBOVVShtP2FF16w119/3bZt2xb2nLVr17ZPPvnEhWyaThctBXMS2lcrIbywUfc2ElWN6bPyLwAAAACAtIlQCqkqJibGZs6caUuXLg0KZxRY6Ulu/qqk7t27Rz2FTwGT+lXt3LkzaP3KlSvd0/8u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W7BggQtdVRkWVxgKAAAAAIAn3ZmUeDY8AET5xEb3FL5uky19luzcMzPbHNOI+wAAAADggvitpz7Ycc1UolIKAAAAAAAAqY5QClGZOHGi5cyZM+wSX++rlNCxY8eI49G2C+16L9QxAwAAAADSLqbvISpqOB76lD9PpkyZrESJEql6J3ft2uXKAcNRaWChQoUuqOu9UMccbUknAAAAAOD8Ee1vPUIpAGcNoRQAAAAAXHjoKQUAAAAAAIBzFj2lAAAAAAAAkOoypv4pASBYpb5zLX2W7Oftbdkc0+hsDwEAAAAAzjtUSgEAAAAAACDVEUoBAAAAAAAg1RFKAQAAAAAAINURSkVh6dKlliFDBmvUKHbfmGnTptmNN95oefLksVy5clnFihWtW7duge3//vuvxcTEWPny5S1btmyWP39+q1q1qo0YMSKwT/v27S1dunSxlvr169vChQvDbvMv2ieSAQMGWNGiRW3v3r1B61evXm1ZsmSxWbNmBdbVq1fPXef3338fWNelSxe74oorwh57y5Ytbv8ZM2a415HG98EHH7jtoddy0UUXWcOGDW3NmjXRfAyx7lWmTJmscOHCVrduXRs1apSdPn06aN+SJUsG9s2RI4ddc8019tFHHwW2Hz161Hr37m2lS5e2rFmzuvHcfPPN9sknn8Q6719//WWZM2e2SpUqWUL5r1njuPzyy911rFixImg/7/7s37/fpkyZ4u7t1q1bwx5Tx+jevXvUY5g0aZI7XqdOnWJtGzNmjOXNmzfi2KdPn+7+3rx5s3sdblzbt2+3jBkzuu3aDwAAAACA+BBKRWHkyJEunFm0aJFt27YtsP6LL76wFi1aWJMmTWzZsmUuZHjhhRfs5MmTgX2ee+45e+2111w4tH79eluwYIE9+OCDLnjwUwClH/b+RUFCtWrVgtY1b9481r7aJxKFLsWLFw8KIzS+e+65x9q2bWu33XZbIGD65ptvrHPnzi7g8dx///22YcMGty1cmFGoUCEXLHlGjx4d6zoaN24c9L6NGze69XPnzrXjx4+7sO/EiRPRfBRB90rhx2effWa1atWyrl27ums5depU0L79+/d3+/7www92/fXXu8/Lu5aOHTva1KlT7Y033nDXOGfOHGvatKnt2bMn7LXq3h88eNC+++67qMcael/WrVtnb775ph0+fNiFk+PGjQu7/x133GEF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AAAAAAAAiDlCKaQrTf0qUqRI2GXKlCkxu9rqlRRpHOGawqeWzinScXQtMtKWLVsiHluLXgcAAAAA4GTF9D2kq82bN0fs9VSmTBnXVDtWT/NTuWA4Kh0sXbp0uhxHDczVAD2cfPnyBT3NLr3p6XqbNm2K+Lr6YPl7hWXlkk4AAAAAQNYR7Xc9QikAmYZQCgAAAACyH3pKAQAAAAAA4KRFTykAAAAAAADEHKEUAAAAAAAAYu7k7oIMIEeoO+QTy12gkJ1MNsW3y+whAAAAAEC2RqUUAAAAAAAAYo5QCgAAAAAAADFHKAUAAAAAAICYI5RKoxtuuMFy5cpl8fHxQevff/99tz5UrVq1rECBArZz5073+/z58912SS3aZujQodawYcNE+9u0aZPbZuXKlWH3d9ppp1nbtm1t1apVYccdulx++eUpOv+RI0danjx5bNSoUWFf13n269fPqlevbqeccoqVKVPGmjVrZi+++KIdOnQosF2VKlXCjif0ukYyY8YMO//8861YsWIWFxdnderUsf79+wdenzhxYtj9a0xy/Phxa9q0qV1zzTVB+923b59VrFjRHnrooWTHEHovvN9Lly5tf//9d9C2upe6p942SS0ae1KfE++zpP1563RPNO6bb77Z/vrrr0RjPXz4sJUsWdJKlSplR44cCXs+7733njVv3txd0yJFilj9+vVt2LBhbn9an9SY9ToAAAAAAEkhlEoHCjaeeOIJ27NnT5Lbffnlly4M6Nixo73++utunYKQHTt2BJZrr73WBUP+ddompdatW+fe+8knn7jQoV27dnb06NGgbUKPo+Wtt95K0XFee+01u++++9zPUBs2bLCzzz7bPv30UxsxYoStWLHCFi9e7LafNWuWff7550HbK/AIHc+dd96Z7Bjmzp1rnTt3tg4dOtjSpUtt+fLlNnz4cDt27FjQdkWLFk20/82bN7vXFOIo/JkzZ45NmTIl8B4dX+HNkCFDLLUUSD311FNhX1Nw5B/PgAEDXKDmX6dzC72v/kWhl8d775YtW2zChAnufG699dawgZO2VUiqADWUQjgdt3HjxjZ79mz78ccfbfTo0fb999/bG2+8YdOnTw8cX9dcdD+9dXodAAAAAICk8PS9dNCyZUtbv369qxp68sknI243fvx4u+666+ziiy921UP333+/5c+f38qWLRvYpmDBgi5E8q9LDQUVxYsXd/tRxdCVV15pP/30k6t28ahiKy3HWbBggQvZFCZNmjTJvv7666AA7bbbbrO8efPasmXLrHDhwoH1Z5xxhv33v/+1hISEoP2pwik145k5c6arvho4cGBgXY0aNeyqq64K2k4VPEntX+9RZZaCqEsvvdSFLW+//bZ9++237j6llvb39NNP2+233x4UIHlhmH9MqkjSNYs0Tu++RuJ/b4UKFaxTp04unAr3Wezevbu7B/qzP/jSeStEHDt2rPuc+qvZWrVqZXv37g0awz///ON+nnrqqWn+3AIAAAAAcg4qpdKBggV9iX/22Wftt99+i1gt884777ggQF/sNS1s0aJFltF0HAUrkpZgJRyFGV27drV8+fK5n/rd8+eff7oKKQUx/kDKL9z0xtRQELJ69WpXzZNWCpAaNGhg119/vZv6NnjwYPd7WujaaPqiwrtY0tRAVcqF3vdff/3VVaypKk+LPodexZioUkzhmELFcJIKxZKjwHX//v1BCwAAAAAgZyKUSidXX3216xMUaZqXgqEzzzzTTZlSiNWlS5egECe9nX766S5YUIDw5ptvukopTdXy0xQ6beNfFK5FQ2HCu+++60I20c9p06bZgQMH3O+qHFMVTs2aNYPepx5G3rFUKean30PHE01wpyBJ08zq1avnqnl0bTWdMLRXkgK60P23adMmUVCmfleaEqj+Vw888IClldcb6+WXX3aBUHrcV2/R58lPvcO0XhV3VatWdWFd6HXWtdF5lyhRwk1NbN26dVA11S+//OKq2RQ2pjdVE6pHlbdo+iIAAAAAIGdi+l46Ul8pTfu69957E72mIMALcER/1jQ+VVdp2lp6U5hTqFAhW7JkiQua/ve//yXa5pJLLnEBjJ9Cimio91S1atUCVUQK5CpXrmxTp061Pn36RHyfpoadOHHCunXrlig00vQ7NWD30xS05KgS66OPPnKBz7x589w5qzfTM8884yqCdB1E1/m7774Leq/Cm3D3Su/ZuHGjq3xT0JVWCn4uvPBCe+SRR1xImJb76v+8hAZHCgE//PBDN6Vu8uTJrum6vy+XGrqrn5mujf+zqM+sqsJy586daFpleho0aJDdc889QeEmwRQAAAAA5EyEUunooosucuGDvnj7w5U1a9a4oESBjL9qRQGBKqhuuummZPetJt2q9Aml/j6iqhM/Vcmo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lZZSEydOdO+tXbt2otfeeecd95ruT6jDhw9byZIlrVSpUnbkyJHA+nr16lnfvn3DHuuNN95w1/6PP/5IdP7+ZefOnW77oUOHBtbp3CtWrGg333yz/fXXXyk+TwAAAABAzkQolUVdfvnltmPHDhd6zJ492y655BLr16+fXXHFFfbvv/8Gths2bJjbzr/ceeedQfv6/PPP3fpffvnFHn30URs+fLgLuETBj/e+9957z61bt25dYN0zzzyTpvNYsmSJnXfeeXb06FH76KOP7Oeff3bHVyCjoE3r/bZs2WJff/213XHHHYExhjrllFPsiSeesD179qRpbN55rlmzxm655Ra79dZbbe7cuYm2Gz9+vLumCxcutO3bt1t6Kly4sO3evdsFX6HHrFSpUtj36D4pRKtVq1ZQGNinTx97++23XWgVasKECXbllVe6IMvjv8/eUrp06cDrOobW6Z7o/XPmzHHXCAAAAACAaBBKZVGqailbtqxVqFDBGjVqZA8++KB98MEHLqBSoOOJi4tz2/kXBR1+p556qltfuXJl69atmzVr1sy+++4795qql7z3qfpGFEx464oVK5bqc1A1loISVQJNnz7dmjRp4sbQqVMnmzlzpgtixowZE/QehR8K3hR+vPXWW2EDlpYtW7qxjRw50tLCO8+qVavaXXfd5X5618Vz4MABmzp1qhuPKqX81z495M2b16677rqgAO63335z1UxaH44Cq+7du7tFf/bod10vL1z0bNy40e1P98LPf5+9JXfu3EFj8z6Duua6b5999lk6nj0AAAAAIDsjlMpGLr30UmvQoIELeFJr2bJltnz5cle9lNE0pU1VSPfcc09Q2CE6DwUdCp78IZZCKYUrqgLSVMN333030X41nWzEiBH27LPPugAnrXRcVQGpIij0ukybNs2NpWbNmm5cCo+8qY/ppXfv3u443nRGBV+qlNO0zVC//vqrC/M0HVLLokWLbPPmze41VUH997//TVRhpv2dfvrpdtlll6V6jKrY++STT9wUUAAAAAAAokEolc0oIFFA4Ln//vutSJEiQYuCCr+mTZu69QoUGjdu7MKMHj16ZPhYNVVPwvVM8tZ723jTDBXMqKeUhFYC+V199dXWsGFDGzJkSKrHp6DGuy6qgtK+LrroorBVSaKgaN++fbZgwQJLT2effbadccYZLoBT4KUQSUFV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H374od12223WqVOnwLoGDRokOo4qhMqWLRt2DP71qrZSlVOkbZML17p3724JCQnuzwrUUuuKK65wgdBXX33lroG8/vrrdtlll9mWLVui2ofGoSqsM8880xYtWmS5c/9fZt2wYUPr16+f+7NCJ11T7bdSpUqBbd555x37999/rVu3bqk+DwAAAABAzkGlFLIUBS+q2qlZs6YLdFSxozBFFAytXr3afvzxx4jv1zZffPGF/f7775aZfv31VzcNUZVWWhQCbd68OdX7y58/vwuDJkyYEFinwK53795R72PlypXu+qkiyh9IeYoXL+5+tm3b1lVMhVZm6djXXHNNYLtwFODt378/aAEAAAAA5EyEUshSvOoi0bS5ffv22YIFC9zvmtLXuHFjq1evnlWpUsW6dOniQit/v6ann37aBVIKp+rXr299+/a12bNnJzrOrFmzrEiRIkHLiBEj0u08NK42bdpYiRIlXF+p1q1bBwVKqaEASqGdptFpaqOujSqoovXLL7+4nwr9kqJ+Xj179nShlBcIKmRTsJZcCDZy5EjX78tbNO0QAAAAAJAzEUohy1i3bp3rFaWm25I3b1435U1BlRQuXNg++ugj16j74YcfdkGSqn6aNGlihw4dctucddZZrpJqyZIlLkDZvXu3tW/f3m688cagY11yySWucsi/KMBKD2q2rql1Xrgm+rNCnhMnTqR6v5qGqKl37777rgu9rr/+eneNouUFTNHQtdu4caPrySUK1BQEXnrppUm+b9CgQS4s85atW7dGfUwAAAAAQPZCTylkGQqf1LOofPnyQUGK+j8999xzrvJGqlWr5hYFTQ899JDrK6U+VHqinGhqmiqqtOjJfJMnT3YBjrbVk+a8gKt69eoZch6ffPKJa0Ie2kNKYZUak7dq1cr9rqcHKrgJpabs3rmGC4uef/5516BcAV5K6DrJTz/9ZGeffXaS2yr8+s9//uPCKD39b9KkSXbTTTe5J/0lRfdKCwAAAAAAVEohS1AYpeBj9OjRQdVL33//vQup9GS8cFS9U6hQITelLRJVT0lS26R3uKaphaGVWFrnVX2J+mbpCYKhwZXO2QuQQl133XW2atUqq1u3buC8oqVm5nqPrnG4iq3QJxSq4bmeIKhFIZuapAMAAAAAEC0qpZAlqMfTnj17XBASWiXUoUMHF+boaXyapqdG3JUrV3Yhyrhx4+zYsWOB6qOOHTu6p9M1bdrU9ZXSFDRNKVPI4++lpD5U2p+fpsKVKlUqTeehflZ6SqCeAqjgyK9Hjx529dVX219//eX6TN1zzz3ufDUujV+h2bPPPuuuQ+h0Q496VO3YscPy5cuX4rGpykmVTy1btnRVUKoc07H1xEON+dNPPw307xI9wfCuu+6yW265xT3lj/5QAAAAAICUoFIKWYJCJ4Ul4aatKZRatmyZC2Q2bNjgwh2FKWokrmBJYYqqjkQNxRWwqI+Ugig17Na22sbff2nOnDlWrly5oOXCCy9M83mo2ktTA1u0aJHoNa0rWLCgm04o6p316quvuv5Q55xzjmvsrvNRE3M9/S4SPf1Ox0gN9d/StdTURU3Hq127tl155ZXuqXxjx44N2lYVaKruUkiWkqf8AQAAAAAguRJS0t0YANLR/v37//9T+PpPs9wFCmXotd0U3y5D9w8AAAAACP6upz7JRYsWtUiolAIAAAAAAEDMEUoB6axOnTpWpEiRsMuUKVMy7XovWrQo4ri0AAAAAAAQS0zfA9LZ5s2bXXP1cNQLKi4uLlOu+eHDh91T8iJRH6mTtaQTAAAAAJB1RPtdj6fvAelMT/47GamJemYETwAAAAAAhMP0PQAAAAAAAMQcoRQAAAAAAABijul7ADJd3SGfWO4ChTJs/5vi22XYvgEAAAAAqUOlFAAAAAAAAGKOUAoAAAAAAAAxRygFICoTJ0604sWLc7UAAAAAAOmCUAqIQvPmza1///45Oizq3Lmz/fzzzxl+HAAAAABAzkCjcyAdJCQk2PHjxy1v3uz7n1TBggXdAgAAAABAeqBSCkjGDTfcYAsWLLBnnnnGcuXK5RZVJ+nn7Nmz7ZxzzrECBQrYl19+meR+fv31V/vvf/9rZcqUsSJFiljjxo3t888/D9qmSpUq9vjjj1uPHj3cNpUrV7YPP/zQfv/9d/deratfv74tW7bMbT9//nzr1auX7du3LzC2oUOHJntPU3qccBVZOk7Dhg3tjTfecPsrVqyYdenSxf7++28+UwAAAACAZBFKAclQGHXBBRfYTTfdZDt27HBLxYoV3WsPPPCAxcfH29q1a12Ik5QDBw5Y27Ztbe7cubZixQq7/PLLrX379rZly5ag7caMGWPNmjVz27Rr186uv/56Fx51797dvvvuO6tWrZr7XdVZTZs2tbFjx1rRokUDY7v33nujuqcpOU5SQdv7779vs2bNcovCO12PSI4cOWL79+8PWgAAAAAAOROhFJAMVQDlz5/fChUqZGXLlnVLnjx53GvDhg2zVq1auQCnZMmSSe6nQYMGdsstt1jdunXtzDPPtMcee8y9TxVKfgqutJ22GTx4sAtuVFXVqVMnq1Gjht1///0uBNu1a5cbl8anCilvbKpyikZKjhPJiRMnXAWVzuk///mPC7YUukUycuRIN15v8cI9AAAAAEDOQygFpMG5554b9baqlFIVU+3atd00OIVHCn1CK6X8FVea6if16tVLtG737t1punfpcRxN24uLiwv8Xq5cuSS3HzRokJtq6C1bt25N0zkAAAAAALKu7NuVGYiBwoULR72tAqnPPvvMnnrqKatevbprGt6xY0c7evRo0Hb58uUL/FkVUJHWqUopLdLjOP7tvfcktb16b2kBAAAAAIBQCoiCpsnp6Xpp8dVXX7mm6VdffXWgcmrTpk0nxdgAAAAAAIg1pu8BUdA0tW+++caFSH/88UeqqpTUu2n69Om2cuVK+/777+26665Lc7WTNzYFXOrlpLEdOnQozfsEAAAAACCjEUoBUU69U3Pzs846y0477bREfaCi8fTTT1uJEiXcE/P01L3WrVtbo0aN0nz9tb++ffta586d3diefPLJNO8TAAAAAICMlishqee9A0AG0hP/3FP4+k+z3AUKZdhxNsW3y7B9AwAAAADCf9fTA66KFi1qkVApBQAAAAAAgJgjlALSSZ06daxIkSJhlylTpsTsOi9atCjiOLQAAAAAAHAyYPoekE42b95sx44dC/tamTJlLC4uLibX+vDhw7Zt27aIr1evXt2yWkknAAAAACDriPa7Xt6YjgrIxipXrmwng4IFC55UwRMAAAAAAOEwfQ8AAAAAAAAxRygFAAAAAACAmGP6HoBMV3fIJ5a7QKEM2fem+HYZsl8AAAAAQNpQKQUAAAAAAICYI5QCAAAAAABAzBFKAQAAAAAAIOYIpbK5xYsXW548eaxdu8R9dWbMmGHnn3++FStWzOLi4qxOnTrWv3//wOvHjx+3+Ph4q1WrlhUsWNBKlixp5513nr366quBbW644QbLlStXouXyyy+3+fPnh33Nv2ibpEycODGwrc6jRIkSbgzDhg2zffv2hX3PyJEj3bajRo0KrOvTp4/Vq1fP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FChQwHbu3JnotebNmwfdUwAAAAAAokUohTQZP3683XnnnbZw4ULbvn17YP3cuXOtc+fO1qFDB1u6dKktX77chg8fbseOHQts8+ijj9qYMWPsscceszVr1ti8efPs5ptvtr179wYdQwHUjh07gpa33nrLmjZtGrTu2muvTbSttklO0aJF3ba//fabff31124MkyZNsoYNGwadk0ch0H333ed+enQef//9tw0ZMiSwTudx00032SOPPGKNGjWKePx77703aMynn366C8X860KvxaZNm2z27Nl2ySWXWL9+/eyKK66wf//916Ll7X/Lli02ZcoUd//uuuuuRNt9+eWXdvjwYevYsaO9/vrrUe8fAAAAAIDk8PQ9pNqBAwds6tSptmzZMldFo6qjBx980L02c+ZMa9asmQ0cODCwfY0aNeyqq64K/P7hhx/abbfdZp06dQqsa9CgQaLjqEqnbNmyYcfgX69qqyNHjkTcNhJVDHnvKVeunNWuXdvat2/vKrsUPk2ePDmw7YIFC1xIo1BHwZVCLAVfCrYmTJhgrVu3dueoaitVEFWoUMEGDRqU5PGLFCniFo+ql1RZFu48/NdC+1bYpWq0Fi1auOt/4403RnXO/v1rPz179nRBX7jQ8brrrrOLL77YhV/3339/VPsHAAAAACA5VEoh1aZNm+amdtWsWdO6d+/uKocSEhLcawo8Vq9ebT/++GPE92ubL774wn7//feT7i6ULl3aunXr5oIzTTP0hzRdu3Z10+f0U797VLWkkE0BzzvvvOOuj4KrvHkzNvu99NJLXZg3ffr0VL1/27ZtLkRUkOanyi+dh+6tpglqOuOiRYvSNFaFhvv37w9aAAAAAAA5E6EUUk2BjAILb1qZQgtVEomm9DVu3Nj1WVIPoy5durjQSqGE5+mnn3aBlMKp+vXrW9++fd2UtFCzZs0KVBN5y4gRIzL8zilwUzDz559/ut8VoLz77ruBc9ZPBU+qGPP3mxKdr8aofcSCjqMpfdFSxZOuo6rLNF1Q1WK6H35vv/22nXnmma5iTNVbOid/CJcauj7qMeYtFStWTNP+AAAAAABZF6EUUmXdunWuV5SqhUTVQOoh5YUWhQsXto8++sjWr19vDz/8sAtABgwYYE2aNLFDhw65bc466yxXSbVkyRLr3bu37d69202bC52CpgqklStXBi0KsDKaV/XlNRrX9LZq1aoFphiq51TlypXdFEaPQh71iCpUqJCb7hYrGqs3zmhoWqWu4w8//OD6f4ma1furwhQiegGc6M+qnFJQl1qayqjw0lu2bt2a6n0BAAAAALI2QimkisInNdbWk9sUSGl58cUX7b333gt6ap1CHIVMeqKenkCnhub+ECd37tyuokr9lzT9TH2RtO+NGzcGtlHAVb169aBFT+rLaGvXrnW9ok499dTAOWtKone+WnQ+/obnovWqLEpJSJQeY61atWrU25cqVcpdR1VCafrf2LFjXX8sNZsXnZfCQvXU8s5VvasUKKqCKrXUE0vX1L8AAAAAAHImGp0jxRRGqVfS6NGj7bLLLgt6TU2+VVEUrpJJ0/hUQXTw4MGI+1b1lCS1TSyoauvNN99056PgbNWqVa6h+/z584MCsb/++suaN29uP/30U8ym6oVSXy6N7+677071PhSiiZq4ewHcRRddZM8//3zQdmrmrtf0VEEAAAAAANKCUAopph5Pe/bssT59+ri+QH4dOnRwoYWexqeqmrZt27opbnv37rVx48bZsWPHXNNs6dixo3tCn55ep75Sqo7S9C49pc8f8KgPlfYX9MHNm9dV+6TX1DftXz81zsWLF7t+UDq3+Ph4t43OSVMPFdSEUqWXXh81apRlNO9aaJrdrl27bM6cOa5P0xVXXGE9evSIej+agueds6bQqSLqtNNOc/dC9+iNN95wTxisW7du0PtU9abeU6oYU68pUV8wTQX001MMy5Qpk05nDQAAAADIjpi+hxRTANOyZctEgZQXSqmiqESJErZhwwYXlChgatOmjQtBPv30U/e0PmndurV76pv6SCmI0lPrtK228T+xTsGLQg7/cuGFF6bbnVMDc+2zQoUKdsEFF9hLL73kxrJixQq3/ujRozZ58mR3buFovSrHFOZkNO9aqOpMzeU13U5h3wcffBCodorG4MGD3X40/VKBlqZI6rprqqKeOKjm7ldffXWi99WuXdst/obnqig7++yzg5ZXXnkl3c4ZAAAAAJA95UrwujkDQIwpEHRP4es/zXIXKJTu+98U3y7d9wkAAAAAiO67nnpOJ9VLmEopAAAAAAAAxByhFLI19T0qUqRI2GXKlCkxG4cav0caR7im8Kmlc4p0HK8HFAAAAAeEClMAACbESURBVAAAJwOm7yFb27x5c8ReT2rEHRcXF7On+al8MRyVMpYuXTpdjqMG5mqAHk6+fPlc0/msWNIJAAAAAMg6ov2ux9P3kK2dLCGMQqf0Cp6SopAtVkEbAAAAAABpwfQ9AAAAAAAAxByhFAAAAAAAAGKO6XsAMl3dIZ9Y7gKF0nWfm+Lbpev+AAAAAADpi0opAAAAAAAAxByhFAAAAAAAAGKOUAoAAAAAAAAxRyiVyRYvXmx58uSxdu0S97+ZMWOGnX/++VasWDGLi4uzOnXqWP/+/QOvHz9+3OLj461WrVpWsGBBK1mypJ133nn26quvBra54YYbLFeuXImWyy+/3ObPnx/2Nf+ibaJx+PBhd/xSpUrZkSNHEr2ufb3//vuJ1mt8V111VeD35s2bu211XqF0jfTa0KFDLVrr16+33r17W6VKlaxAgQJWoUIFa9GihU2ZMsX+/fffoPF5S9GiRa1x48b2wQcfhD3PIUOGWI0aNdz+dL6dOnWy1atXB7aZM2eO28/OnTuD3luuXDmrUqVK0LpNmza5bcePH5/svZg4cWLgnu3duzfR2LTvsWPHRnVdvv/+e7vyyiutdOnSdsopp7j3du7c2Xbv3h14vWvXrlaxYkX32apdu7Y988wzgfc/9thj7nz++uuvRPvVdZk1a1ZU4wAAAAAA5FyEUplMYcSdd95pCxcutO3btwfWz50714UEHTp0sKVLl9ry5ctt+PDhduzYscA2jz76qI0ZM8YFBGvWrLF58+bZzTffnCiwUAC1Y8eOoOWtt96ypk2bBq279tprE22rbaLx3nvvudBMAVm48CklFIQogPHbtm2buyYKQqKl69aoUSNbu3atPf/88/bjjz+6UOfGG2+0F198MShIkgkTJrhzXrZsmTVr1sw6duxoq1atCryusK1ly5b22muv2eOPP24///yzffzxxy7cUhi4ZMkSt92FF15oefPmDQr0NAYFWnv27HFBlEf3TCFOly5dgq77gAED3PX0r9PnIT38/vvvLphTiPjJJ5+4sency5cvbwcPHnTb6POmwGry5MnuOj300EM2aNAge+6559zr+rPu0+233x7Yrz6bPXv2tO7du9sVV1yRLmMFAAAAAGRfPH0vEx04cMCmTp3qQhBV1SiIefDBB91rM2fOdMHIwIEDA9urOsdfVfThhx/abbfd5ip1PA0aNEh0HIUeZcuWDTsG/3pVxCh4ibRtcuGawoiEhAT357QEKAo0pk2bZl999ZW7BvL666/bZZddZlu2bIlqHxqHqrB0zbSf3Ln/L38988wzXRWQtvErXry4O3ctCvpUGaTQqF69eu51VSGpsm3FihWB61y5cmUXyCmU6tOnjwu+ihQp4iqtFEopbBL9WWHViRMn3J81Nm+9quEKFy7sFo/2oWArNfciOboe+/btcxV1OoZUrVrVLrnkksA2qi7zO+OMM9y5T58+3e644w73vkmTJtnZZ59t7777rgvwFJoqEFVQCgAAAABAcqiUykQKXlRZVLNmTRfoqALHC0oURqhCRSFHJNrmiy++cJUvmenXX391gYUqrbQsWrTINm/enOr95c+f37p16+aqdzwK7EKDkqSsXLnSVQDde++9QYGUn6bBhaPKJwVr3lg8b775prVq1SpR8Kf933333a5aTdPXRAGPAi2P/qypiRdffHHQeoVS/jAoFvS50TlqemhoMJcUBVmqrvLoszty5Ei79dZbXcWV/qx7pumPAAAAAAAkh1AqE3nVRaJpc/rSv2DBAve7pvSp2kZVOur3o4obhVb+fk1PP/20C6QUMtSvX9/69u1rs2fPTnQc9fdR5Y1/GTFiRLqdh8bVpk0bK1GihAstWrduHRQopYYCKIV2mk6mqY26NimZEqapdaLAz6N+Sf5r8MILLwS9R9VTWq/KMoVMuu4K2fz7VG+lcLz13nEVNOnPmnYnuq8KpC666KLAPd6wYYOr/EpNKHX66acnuqfRVpGpMksVedddd53riaV7N2rUKNu1a1fE93z99deuqk/TQ/369etndevWtbZt27pwKrlz0ed3//79QQsAAAAAIGcilMok69atcz2PFISIpkNpyptXoaOpXB999JFr1P3www+70EF9hpo0aWKHDh1y25x11lmukkq9jBTiKHRp376965nkp6BAlUP+RQFWelCzdU2t88I10Z9V2aSpaqmlaiRNs9PUMIVe119/fWCqWWqdeuqpgfPXVL2jR48Gva5pZ3pNwZ6uraa3+SuDJNrKIvXiUpWVKqFUQaV+Uupvde6557ogcePGje41TZlUSJRSqkYLvafqCRUtTbXTlNH//e9/rneVfqryyd9Dy6PP2H//+1/X4F1TKEOrzdRvSvdan9PkqJpKjfu9RX2pAAAAAAA5Ez2lMonCJ02h8gcJCjxUpaNm0vrCLtWqVXOLgiZ9+VePJFWs9OrVKzB1TBVVWvRkPjWmVoCjbdUnyAu4qlevniHnoWlbakIe2kNKYZUak2u6m+jpgap2CqUeRN65hlLQpgblCnUU4KWEAi0v/FPfI9FTDr3rEC7gUsWZXteiSi9V/+jYavgtuvaaEhiOt17bSKFChVyAqKl6ekKd+knp+FoUWGm9FvXM8k8RjJburYI1v5SGdgrp1I9MiyrndJ2eeuopFzJ6dP5qiq4KqUihk3fcaI6vBun33HNP4HdVShFMAQAAAEDORKVUJlAYpSbRo0ePDqp0UT8ihVR6Ml44mk6msMN7Qlo4qvCRpLZJ73BNUwtDq3a0zqv68qbR6YluocGVztkLckJpepkqdzQ9zDuvaClgUeWPQpbUVGwpUDrnnHNcRZFH5/T5558H+kZ5tH9VWWmM/n5TqlBTNZQW9ZPyaAqf1mkaX6z7SUWiYEzhp/9zo55mGp+eqOe/Dmmh0FU9p/wLAAAAACBnolIqE6jH0549e9zT2kKrhDp06ODCHE2t0jQ9VevoCW+qKBo3bpwdO3YsUH2kJ56p0kaVN6ry0ZQwVaIo5FEg4+/jo/35qapF/YTSQtPQ9JRAPQVQwZFfjx497Oqrr3ZVQpoCp+oYna/GpfEr/Hj22WfddQidbuhRjyr1ZMqXL1+Kx6ZpZap20rF0jXRd1PdJ1089qjR2VS0lRZVnOof77rvPKlSo4PpMffDBB26KpAJFPXFPfZhUZaRKKQVW/ubpCnT0FD9dezVc96i3lHo4/f3335kSSunz9/bbb7uQTZ8VVejpPn788ceBXmCasnfppZe6/mC6d97nR9fstNNOi/mYAQAAAADZD5VSmUChU8uWLcNOW1MotWzZMhfIqBG2wh0FOWpGrWDg008/DTTvVmCgMEEhicIFVbRoW23jn0o1Z84cK1euXNCi6WRppWovTQ3U9K5QWqd+SZpOKOqdpR5N6g+lCiQ1dtf5KCAqU6ZMxGNoipqOkRrq1aTqLF2v22+/3VUyKcBTJZoqm9SYOykao6bJeVVCp5xyinvaoe6JGoVrmp+2UVCjvl6hvaEuuOACVxmk0Efn7FGYpXBMfcI07TLWdB1UcaceZQ0bNnTjVlN53R9N/RT18lJwp/vn/9xkxngBAAAAANlTroSUPBMeANKRekq5huf9p1nuAoXS9dpuim+XrvsDAAAAAKTsu556SyfVtoVKKQAAAAAAAMQcoRSSVKdOHTfNLNwyZcqUTLt6ixYtijguLTmZ7kuk66L7CQAAAADAyYDpe0jS5s2bXf+jcNQLKi4uLlOu4OHDh23btm0RX1e/p5xKDdTVgD0cNY1X4/ysVtIJAAAAAMg6ov2ux9P3kKSTKcDwUxP1nBw8JUVBYWaFhQAAAAAARIvpewAAAAAAAIg5QikAAAAAAADEHKEUAAAAAAAAYo6eUgAyXd0hn1juAoXSbX+b4tul274AAAAAABmDSikAAAAAAADEHKEUAAAAAAAAYo5QCgAAAAAAADFHKJVDLV682PLkyWPt2iXuvTNjxgw7//zzrVixYhYXF2d16tSx/v37u9eaN29uuXLlirjo9Uj++OMPK1u2rI0YMSLRa9dee6075vHjxyOOb9euXZYvXz57++23w+6/T58+1qhRI/fnoUOHhh1frVq1Atv7z+WUU06xGjVq2MiRIy0hISGqa7hp06agfXvX6vbbb7dffvklaNuJEycGtsudO7edfvrp1qtXL9u9e3dgmwULFtill15qJUuWtEKFCtmZZ55pPXv2tKNHjyY69i233OKuzzvvvGMpEXpddI//85//uGOHo+uh44waNSrRazqn4sWLp+j4AAAAAAB4CKVyqPHjx9udd95pCxcutO3btwfWz5071zp37mwdOnSwpUuX2vLly2348OF27Ngx9/r06dNtx44dbtHr8vnnnwfW6fVISpUqZS+//LI9+uijtmrVqsB6BSuzZs2y119/3QUgkcZXpkwZF1K99tprifZ98OBBmzZtmgumPAqIvHF5y5dffhn0vptuusmtX7dunQ0aNMgGDx5s//vf/1J0Lb3z//77713gtnbtWmvQoIG7ln5FixZ12/3222/2yiuv2OzZs+366693r61Zs8Yuv/xyO/fcc9056/o8++yzlj9//kBQ5zl06JAL5u67776w1yI5/uui8E/h1xVXXGH79u1LtK32n9rjAAAAAACQFJ6+lwMdOHDApk6dasuWLbOdO3e6ipcHH3zQvTZz5kxr1qyZDRw4MLC9Koiuuuoq92dV8Xj++ecf9/PUU091FVDRuPLKK+26665zFUDffPON7d2711UWxcfHW82aNZMdn0InjWXLli1WqVKloGDr33//tW7dugXW5c2bN9lxqSLJ20aVS88995x99tlnduutt0Z1PqHnf8YZZ1j79u2tRYsWbqy//vprIGhTZZK3Xfny5e2uu+6yRx55xA4fPmyffvqpe+3JJ58M7LdatWouqAqlcz3rrLPsgQcecPvZunWrVaxYMerx+q+Lfg4bNswmTJhgP//8szVu3DiwnaqnNDa9PmnSJPv666+tadOmUR8HAAAAAICkUCmVA6miSNPYFAJ1797dVcF4U9YUUqxevdp+/PHHDDv+M888Y3/++ac99thjdtttt1ndunVdVVQ042vbtq2rmFJQ5adQ5Zprrkn1dDLtf9GiRfbTTz+56qS00PS8fv362ebNm12lWSQFCxa0EydOuDBN112VS6qSSo6qyHRdNPWuTZs2ia5FShw5csRdO103LxT0H6dr165uyqR+6ve00vH2798ftAAAAAAAciZCqRzICzVElTiatuX1FFI4pGqZevXqWZUqVaxLly4uFFKYkF40jU1BiKa6qUJIf1YVUTTjU9WRqqwUxHhBlaqRFCj17t076DiaAlekSJGgpW/fvkHbvPDCC259gQIF7KKLLnIhkSqY0srrXaW+U+Go55SmCWq6nnpRderUyQU/F198sZUrV86uvvpqV7UVGtrofUuWLHFTLEXXSdcv2j5YoddFwdhTTz1lb731lrsvHh333XffDdwH/VRYqCq2tFCPKoVp3pKSCi8AAAAAQPZCKJXDqHeSekEpAPGmcing8KpgChcubB999JGtX7/eHn74YRdcDBgwwJo0aeJ6GaUXNfRWY3P1VKpcuXLU4xOFTxs3brR58+a53xXKKEDTPv1U+bNy5cqgRVPR/DTdT+u/+uorV3X00EMPpcsUNS8k8odtCtd0PTVlUGNTxdeUKVMCYZvOQ/2mNIWvQoUKLrTz+j95FBC2bt3a9efyKse03y+++CLqsfmviyq5NFVRoZimS3oUUmn6oHpjScOGDd190rTKtFDfLo3XWzT1EAAAAACQM9FTKodRuKPpYupF5A9QVCmkyhxVr4gCCS033nijC2rUV0qBhPoupRcFTlpSOj415tYT4xTi6Al66nekhuX+AEg0Da969epJjkH787ZRJZD+rLCsZcuWaTo3NTuXqlWrBtapIuq7775z0/tUDaUqpVAKoxTUadH0Rl13VVSpObwanqsZvPps+a+b1iusUh+raIRel7PPPtvef/99Gzt2rE2ePDlwHzSN038cVZHpOP5m8iml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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                      feature  importance\n",
      "167             NTRL_CUST_AGE   14.367679\n",
      "161             NATURE_IS_OLD   10.108618\n",
      "151   NATURE_AGE_BY_RANK_DIFF    6.386215\n",
      "61          AST_SAVER_AUM_BAL    4.986274\n",
      "63          AST_YAVER_AUM_BAL    4.453566\n",
      "59          AST_MAVER_AUM_BAL    2.474334\n",
      "160          NATURE_IS_MIDDLE    2.055146\n",
      "56            AST_DAY_AUM_BAL    1.794954\n",
      "155  NATURE_AGE_RANK_INTERACT    1.731420\n",
      "65           AST_YAVER_DP_BAL    1.674329\n",
      "\n",
      "================================================================================\n",
      "\n",
      "XGBoost特征重要性 (Top 30):\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAMWCAYAAAAgRDUeAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QeUFNUW7vFNlpxzziBBBBPgRRSQaEAEQUARRTGjIogiICiMAQXMgaRiQEFERFCRpGAgGkBUdADJOUt+6zvvVb/qnp6ZntQzwP+3Vq2ZrqquOlXduO58d59dmU6dOnXKAAAAAAAAgCjKHM2TAQAAAAAAAEIoBQAAAAAAgKgjlAIAAAAAAEDUEUoBAAAAAAAg6gilAAAAAAAAEHWEUgAAAAAAAIg6QikAAAAAAABEHaEUAAAAAAAAoo5QCgAAAAAAAFFHKAUAAAAAAICoI5QCAAA4A61du9by5MljmTJlcsuVV15pp06dCtpHr1u0aBHYJ3fu3Pbnn3/GOdbOnTvtmWeecccoVaqUnXPOOZYjRw4rWbKkNWnSxB5++GFbuHBh0PFjY2MDx/UvWbJksbx581rNmjWtZ8+etmTJEjud9OjRI3AtTZs2TdJ7//vvP9uzZ0+iy/Hjx93+Bw4ciGh/TyT76piic0Syv8acnLHHp0KFCmG/Fwkt8+bNs/S2bds269u3r/vMy5Ur5/6tZM+e3YoXL26XX365jRkzJnCvQmm9/v00aNDA8uXL595bu3ZtGzhwoO3duzfq1wIAGcopAAAAnJFee+01pUSB5cUXXwzaPmbMmKDtr7zySpxjvP7666dy584dtF98y+bNmwPv++effyJ6T5YsWU59+umnp04XN998c2Dsl112WZLeO3jw4Ijuydy5c93+On4k+3si2dcbs84Ryf4ac3LGHp/y5ctHdJykHDMafvrpp0THeckll5w6cuRI0Pt27Nhx6vzzz4/3PRUqVDj1999/p9t1AUB6y5reoRgAAADSxh133GHTp0+3mTNnutf9+/d31U7VqlWzP/74w732tGrVyu68886g9z/77LPWr1+/wGtVragq5JJLLnFVWLt27bIVK1bYt99+G2+ViEcVWTr3yZMnbdWqVfb222+7yqoTJ07YoEGD7Oqrr7az5TN57bXX4t2uChq/999/3zp37hx23x07dljRokWD1m3evNlKlCgRdv+PP/7YXnrppcDr6tWr2++//x7vWO65554UjT2cxx57LKg6aPfu3TZ8+PA43xO/ypUrW3rTd79SpUrWsGFDK1OmjOXPn982btxokydPtu3bt7t9vv/+e5s6dWrQ53X77bfb8uXL3e85c+Z091CVhm+++aarQFRFofZfvHixZc7MJBYAZx9CKQAAgDPYW2+9ZXXq1HF/AB86dMhuuukmmz9/vnXv3t0OHz7s9ilUqJCNHTs26H2rV6+2AQMGBF4XLlzYBVyNGjWKcw5NCXvnnXfcH93x0fs0/cmj8cyYMcP9Hl8wMmXKFBs3bpwtXbrUBWCa9qRpfx06dHABWq5cueK8R0HBqFGjbNasWfbPP/+46WQKaS699FK777777KKLLgraX9sV1Hz44YfumnUtChz0Hk23atOmjQsNJkyYYLfcckvQe3UfFVZ45s6dm+QpfWebXr16Bb1WKOMPpUK/J6LgUt+DSZMm2cqVK12opWlwdevWtRtvvNF9LlmzZg06ZsWKFYM+lw0bNrjvhQJRTR9t166djRgxwk2/i4S+C5oSG6pLly7uu+VZt25d4HedSyGVZ/To0YHrv+KKKwLh248//mizZ8+21q1bRzQWADiTEEoBAACcwdT36dVXX7VOnTq51z/88IMLZn7++efAPtquXlF+6pGjMMCjCplwgZSoaiq0yio+qpRas2ZN0PlDK3t0XoUNqkLxU88iVZRoUYg2Z84cd32eBQsW2LXXXuuqb/wUFGhR1ZGqvx588MHAtttuu80mTpwYtL8CMC0KFVRRFl+lEtLewYMHXTCozzb0M1KvKS2quvviiy/c9zCcYcOG2TfffBN4raq+8ePHu1BR1U2h1WaROHbsmP3777/u3H61atUK/K4Q109hqqd58+YuWNu3b19gX0IpAGcjakQBAADOcB07drSuXbsGXvsDIYU/XmDlp8DHU7BgQbvuuutSNIYnnngi0Oj83HPPtfXr1we2+acRiipn/IGUpgtqip+uw6OqJv81KbDSGL1ASlVbd911lz3yyCNWvnz5QCCmKhyFEaKqqHfffTcoNHjqqafclMUbbrghKCy78MILXaB1wQUXBNZpOpfWeUtGmGZ2plF1mz+QUnXR4MGDrWXLloF1mj6q/eKjQErTTvUdatasWWD933//Hee7F0nlob7HanKuz/+NN94IbNO/o7Zt24b9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bdvWjh49GrRP6Hm0vP/++0k+1/bt261Zs2ZWqFAhd77Vq1fb+PHjrVSpUnbw4MGIjtG3b1+74447XJD1888/248//miXXnqpXXPNNfbSSy8laTy1atVy17J+/XqbO3eudezY0UaMGOHu4/79+5N8fQAAAACA6ODpe0ASNW/e3P766y8XfDzzzDPx7jd27Fi78cYbXQXQ/fffb/3797fs2bNbiRIlAvvkzJnThUj+dcmhiqUCBQq44/Tp08dVMf3+++9Wt27dwD6q2ErpeeS7776zvXv32ltvveWqk6RixYp2+eWXR/T+77//3kaOHGljxoyxe++9N7D+qaeesv/++88efPBBF06VLVs2ouNpDN51KRirU6eOtWjRws477zwXHj755JPJuk4AAAAAQNqiUgpIoixZstjw4cPtxRdftH///TfsPqrQ+eijj6xbt24uIFGIs3DhwjS/1zrPBx984H5XAJYWFAAdP37cPvnkEzt16lSS36/qrDx58rhKqVAPPfSQHTt2zKZMmZKiMWraZOvWrW3q1KkpOg4AAAAAIO0QSgHJ0L59e9fzafDgwWG3KxiqWrWqm1qmEKtz586uciqtlClTxgU9qpZ67733XKWUghk/9WvSPv5F4VpSXXLJJfboo4+6KjD1cFL48+yzz9rWrVsjev8ff/xhlStXDhuaqdIpX758bp+U0vWrB1dCVKW2b9++oAUAAAAAEB2EUkAyaWqYekWpp1KocePGuSopj35X5VRa9ThSFdbSpUttwoQJVq1aNXvttdfi7KPpdWqQ7l969+6drPNpqp2at+s8Ct70UyFQaIP1+CSnwiqpdI5wzef9NAUzf/78gSXSKYMAAAAAgJQjlAKSSU95a9mypQ0YMCBo/apVq1zfpH79+rl+R1pUXXTo0KHA1LrEqFpIU/FCeU+hU4Dip55O1atXt5tvvtluu+0210A8VO7cua1KlSpBi5qVJ1fhwoVdU/HnnnvOBXOqctLviVFo9vfff8dpxC6bNm1y1UraJ6U0Jt2XhOiz0332lg0bNqT4vAAAAACAyBBKASkQExNjn332mS1evDiwTtP0FFitXLkyqCpJDbwjncKngEn9qkKnxC1btsw9/a9cuXLxvvfuu++2X3/91fV8ihZNxdOUvEievqepjAcOHLDXX389zjaFWtmyZbMOHTqkaDxq8j5r1qxEj6Pm7woA/QsAAAAAIDp4+h6QAnrSW9euXd2T5ERNut955x0bOnSo1a5dO2hfVTA9//zz9ttvv7kpbwlRBZaCqS5durinx6m5uAKpgQMHuif5qU9VfHLlymW9evVy/a6uvfbawBQ29U/SlDs/VXGpL1RSqDeVKr4ULqmiSdPkFMzNnDnTxo8fn+j7GzZs6K7h4YcfdtVSGqPu27vvvmujR4+2UaNGxZlGp2mBefPmDbzWNenpeqKm67qukydP2s6dO23evHnunqnnl84BAAAAAMiYCKWAFFIA9eGHH7rfp0+f7oIRNUIPVbNmTbeoWkrhVIL/MLNmtS+//NI1FFcwtX37djcVTWGOKq4Sc88997hzqI9Vp06d3DpVDpUsWTJoPwVfqipKinPPPdcFX3pSnqa7qdpITd3feust6969e0THUPBUt25de+WVV1zQppCtfv36Nm3aNLvqqqvi7K/KMz/trzBKFPLpurRO0xo1Pk3Lu/POO93YAAAAAAAZU6ZT0eg4DACnAfWzcg3P+0y2zDlypfdwAAAAACCs2Ji2djr8baXevQm1SaGnFAAAAAAAAKKOUAo4y02aNMny5MkTdkms91U4vXv3jvd42gYAAAAAgDB9DzjL7d+/P85T/jx6El758uWTdLxt27a5Us1wVLZZrFgxO91LTAEAAAAAKf/bikbnwFlOT7XzP9kupRQ6ZeTgCQAAAACQMTB9DwAAAAAAAFFHKAUAAAAAAICoY/oeAISoPXi2Zc6Ri/sCnOUy+qOWAQAATndUSgEAAAAAACDqCKUAAAAAAAAQdYRSAAAAAAAAiDpCKQAAAAAAAEQdoRRSTaZMmRJchgwZYrGxsUHrChcubFdeeaUtX7486FiLFy+2LFmyWNu2/7/J7DvvvGO5c+e2v/76K2jfTZs2WcGCBe2ll15KcHydO3e2Vq1aBa2bNWtWYGx+el2uXDn3+8yZMy179uy2bNmyoH1GjhxpRYoUsS1btiR6b7Zv32533nmnO2aOHDmsRIkS1rJlS/vuu+8C+1SoUCHsfYuJiYlzPL1X9+enn36Ks61Hjx5h3zdt2jS3PjHe++NbNE5p2rRpYN0555xj1apVsxEjRtipU6csKaZMmeKOlT9/fsuTJ4/VrVvXhg4dart27XLbJ0yY4M4R+tnt2bPHrZ83b15gn4QWffcAAAAAABkHoRRSzebNmwPLqFGjLF++fEHr+vbtG9j366+/dutmz55tBw4csNatW7uQwTN27Fi79957bcGCBS50ku7du7swRqHJyZMnA/v26tXLGjRoYHfffXeC47v88stdCHT8+PHAurlz51rZsmVdsOGn9dpf2rRpYzfddJNbjhw54tatWrXKBg4caC+//LILmBLToUMHF7xNnDjR/vjjD5s+fboLYnbu3Bm0n8IY/z3Tovvgt379elu0aJHdc889Nm7cuLDnU0j09NNP2+7duy2pRo8eHXR+GT9+fOC1PwjTvde6NWvW2IABA2zQoEH22muvRXyuxx57zG644Qa78MIL7YsvvrBff/3VhX0rV650IaQna9as7jujzyUcHcM/5oYNGwbG5i36nAEAAAAAGUfW9B4Azhz+cEZVL6pOCQ1sduzY4X6qQkrbtDz33HPWuHFj++GHH1zopJDqww8/tCVLlrgqJFXBPProo+59r7/+utWqVcuef/55F3Jpm4KmX375JdEqIIVMOraOe8kll7h1CqMeeeQRe+ihh+y///5zYY5+aiy33HJL4L0vvPCC1alTxwYPHmxPPvmk3XzzzXbVVVe5MCQxCtsWLlzoznXZZZe5deXLl7eLLroozr558+ZNNORSQNSuXTtXeaXr0L3ImTNn0D7Nmzd3FWWqXHrmmWcsKfTZafErUKBA2HHlypUrsF73S9VqX331lRtbYn788UcbPny4CzDvv//+wHpVYrVo0SIopFSFXKdOndxnpc8mlK7ffw9U2eYfGwAAAAAg46FSCunOCxOOHj3qfk6ePNlq1Khh1atXt27durlqIG9KWNGiRe2NN96wxx9/3IUfDzzwgKvsiaQKRtPLSpUqFai22b9/v5uS17FjRxeEaMqgqApJFVFepZQXFmkcquLp2rWrbdiwwV599dWIrk9T0rRo+pxXaZVcug8KpXRfdI+qVKliH3/8cZz9NLVPgc+LL75o//77b4rOGem4FLz9/vvvLhCKxKRJk9x9ueuuu8JuVxAWOqVS4WO4600ufR779u0LWgAAAAAA0UEohXSlaphhw4a5cMKrHNLUPYUuoj5Ce/futfnz5wfec+2117qqGW1T5ZGqliKloMmbqqcQRUGVgq4mTZoE1utnxYoVXTWT3xVXXGHXX3+9C83GjBnjqr0ioalnqujS1D0FLaoKU+XXzz//HGff/v37B0Isb9E4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4w5dWrVqlaTrHzFihGXJksWeffbZsNt1nffff79VqVLFzjnnHCtevLg1btzYXn31VTt06FBgvwoVKoQdT+h9Dce7B96SPXt2d74nn3zSTp06Ze+8847lzp3b/vrrr6D3bdq0yQoWLGgvvfRSoufwjy9XrlxWp04de+utt8Lu+/7777t7cvfdd8fZ5n0+tWrVshMnTgRtK1CggE2YMCHonKNGjQq81rX07dvX8uXL546TmJUrV9rVV19txYoVc/dex7vhhhts27Zt7vuU2Pcu9HuSLVs29/m1aNHCxo0bZydPnkx0DAAAAACA9EModRbQH/xPP/207d69O8H9vv32Wzt8+LBdf/31NnHiRLeuUaNGtnnz5sDSqVMnFwz512mfpFqzZo177+zZs+3IkSPWtm1bO3r0aNA+oefRokAlKRRO9OvXz/0M9ffff9v5559vX375pQ0fPtyWL19uixcvdvvPmDHDvv7666D9hw4dGmc89957b8Rj0fH0nj///NOeeOIJe+qpp9y4unfvbi1btnQBiz9I6dWrlzVo0CBseBSON75ff/3VunXr5t7/xRdfxNlv7Nix7hp1L//777+wx9K9efvttyO+NgVYt956q3vP3LlzrWnTpgnuv337dmvWrJkVKlTIfQdWr15t48ePt1KlStnBgwdduOW/z2XKlIlz/0O/Jwr/dL2XX365CxrbtWtnx48fj/gaAAAAAADRlTXK50M6aN68uavCUdXQM888E+9+CituvPFGu+yyy9wf9f3793dVPSVKlAjskzNnThci+dclh6pjVHmj4/Tp08dVzPz+++9Wt27dwD6q2ErJeebPn+9CNoUZCksWLVoUFKDdddddljVrVluyZImrVPJUqlTJrrnmGlf545c3b94Ujadw4cKB95cvX96FMMuWLXNhzuuvv+6qk55//nkXyKgi6bvvvnMVZOEq2sLxj0+fnT7rr776ylq3bh3Y559//nH3YcqUKS48mjp1qvvMQylsGzx4sNumzyEh+j506dLF3ceFCxda9erVEx2rrm3v3r2umkufgVSsWNEFSp48efIEfldlV3z33/89KV26tNWvX98uueQSF3rpPt52222JjgcAAAAAEH1USp0F9Ae9KoFefPFF+/fff8Pus3//fvvoo49chY2mPykwUMCQ1nSeDz74wP2uACw1KWRTWKJpXfqp156d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smWzDz74IOzxb731Vqtfv777fciQIWHHV6NGjcD+/ms555xzrFq1ajZixAg7deqUJVXLli3deH/66ac423Qe7/75TZgwwQoUKBB47Y25VatWcfZ99tlnE72/fqHXr8/yf//7n82fPz/s/rpujV/nSWycAAAAAICMjVAKGdrYsWPt3nvvtQULFtimTZsC6+fMmWM33HCDdejQwX788UdbunSpPfXUU3bs2DG3ferUqbZ582a3aLt8/fXXgXXaHp8iRYrYG2+8YU888YT98ssvgfUfffSRzZgxwyZOnOiCkfjGV7x4cRdSjRs3Ls6xDx48aJMnT3bBlEdhmjcub/n222+D3terVy+3fs2aNTZgwAAbNGiQvfbaa0m6l+vXr7dFixbZPffcE3ZsSVGyZEmbO3eu/fvvv0Hrddxy5col6Vj+61fIV7VqVWvXrp3t3bs3zr46fr9+/VI8fgAAAABA+iOUQoZ14MAB+/DDD+3OO+90IY8qYTyfffaZNW7c2B5++GGrXr26qx669tpr7eWXX3bbCxUq5KqdtBQtWtStK1y4cGCdtifk6quvthtvvNFuvvlmF3Rt377d7r77bouJiXHnS2x8Cp0UnCkI8lOwdfz4cevatWtgXdasWQPj8hYFY365cuVy68uXL2+33HKL1a1b17766qsk3c/x48e7sEfjff/99+3w4cOWXMWKFbMrr7zSBXQeBV6qMgtX1ZYQ//Wfe+65NnToUHdv//jjj6D9VD2lMWv7vn373PkAAAAAAKcvQilkWKoo0jQ2hUDdunVz1THelDUFGL/99pv9+uuvaXb+0aNH286dO23YsGF21113We3atV1VVCTja9OmjauY8gdVXjB03XXXJXuamY6/cOFC+/333y179uxJep/OrXFqzFWqVLGPP/7YUqJnz55B16frV9iWlHGFOnLkiBun7o8X/nlUldalSxc3NVI/9TqldD4FXP4FAAAAABAdhFLIsBQ6KEQR9S/SdC6v15DCoQsvvNDq1KljFSpUsM6dO7tQRCFDasmXL58LSNRb6ssvv3S/q+9RJOPT9D5VWSm08YKqtWvXukBJYY6fpgjmyZMnaOndu3fQPq+88opbnyNHDmvSpImdPHnS7rvvvoivRVMXDx065HpKicad0lBHVVcKcTR10ZuWGHptkfBff86cOe25555zlVy6/x6dRyGad7/1U+dTRVVKqEeV+lh5S9myZVN0PAAAAABA5AilkCGpd5J6QakixpvipR5SXpCSO3du+/zzz+2vv/6ygQMHukDjoYcesosuusiFL6nliiuucI3Nu3fv7qbORTo+UUDzzz//uN5LolBLAZqO6aeKoBUrVgQtmqLmpwokrf/uu++sdevW9thjj1mjRo0ivg4Fdhqfxikat46loCy5VLGkcEjXpWmJmkKpaYVJ5b9+9QbT9MKOHTvakiVLAvsopKpcubKdd9557nW9evXc56Hpkymh/lwKE71lw4YNKToeAAAAACBy//cvVCCDUbij3kulSpUKrFPFkSqFXnrpJVfVIgoqtNx2220uqFEwoqBCfZdSi4IcL8xJyvjUsFtPklNoo6fRvf32265hub/aSjTdTdPpEqLjefuoQki/Kyxr3rx5ouPftWuXe1KhemO9+uqrgfV6gqDCKjWIF1UmhWsuvmfPnsD9DqXg7eKLL3bTKJNTJRXu+s8//3ybNm2ajRo1yt59993A/dZ0Tf/noGoxjd/fND6p9HlpAQAAAABEH5VSyHAU9ijAGTlyZFD10MqVK10IpKqZcFSFpIbgmkqWUcanwGTKlClu2bhxo/Xo0SPF51dV2P333299+/YNTA1MyKRJk6xMmTJufP7xavyaXqhwyqtYWrZsWZz3a53CvvienKdFoZQaw6cWTX/0GrFrep+qpubNmxc0fr3W0/rUXwsAAAAAcPqhUgoZzowZM2z37t0u0Amt0OnQoYOrmtmyZYubpqeG4prGpWqeMWPGuGqgFi1apPv4vJ5Qmoam3k933HGHe1pduJ5FCrl0PX6qplKj9PjoeGrArrDr+uuvT3C8Go/2UaN2P41F09dmzZrlnpinaXOq8tJ4VXmmCiJNkVTIpqcdxuebb75x9z25zdv9179//35X6bZq1Srr379/YPyalqleWqHUV0zbn332WfdaAZsCKz9dR82aNZM1NgAAAABA2qFSChmOQgZNSws3ZUyhj6pmChYsaH///bfddNNN7mly6rOkYEMNyUOf2pYe4/v555/da1VuqQm7Qqz4prdpWlrJkiWDFn//qnAKFSrkrn3IkCFuGlt81KNJFVIaVyiNv1mzZoE+WJUqVXJNy1V5pOvTtDxNFVS/KDVyj4/6eyU3kAq9fvWK0jk1zVDXd/ToUTeFL9z4RetVtaZQTNT4XNP//MtVV12V7LEBAAAAANJOplORzP8BgLOAnvLnnsLXZ7JlzpErvYcDRF1sTFvuOgAAAFLtbyv1LfY/WT0UlVIAAAAAAACIOkIpnJXU/FsNw8Mtatx9OlH/qviuxettlV7iG5eWhQsXpuvYAAAAAADpi+l7OCupofbWrVvDbsuWLVuiPZ0ykm3btrnSyHBUJlmsWDFLL3/99Ve820qXLm05c+a007HEFAAAAACQ8r+tePoezkp58+Z1y5lAoVN6Bk8JqVKlSnoPAQAAAACQQTF9DwAAAAAAAFFHKAUAAAAAAICoY/oeAISoPXi2Zc6Ri/uCNBMb05a7CwAAgLMelVIAAAAAAACIOkIpAAAAAAAARB2hFAAAAAAAAKKOUArJkilTpgSXIUOGWGxsbNC6woUL25VXXmnLly8POtbixYstS5Ys1rbt/++x8s4771ju3Lntr7/+Ctp306ZNVrBgQXvppZcSHF/nzp2tVatWQetmzZoVGJufXpcrV879PnPmTMuePbstW7YsaJ+RI0dakSJFbMuWLYnemx49erjz9O7dO862u+++223TPn4bNmywnj17WqlSpdz5y5cvb/fff7/t3LnTbQ+9l+GWCRMm2Lx589zve/bsiXPuChUq2KhRoxIcu/f+hBbto3N5rzNnzmwlS5a0G264wdavX29Joc/3lltusTJlyliOHDmsYsWK1qVLF1uyZElgH53jnHPOsXXr1gW999prrw3cx0i+jwAAAACAjIVQCsmyefPmwKKgI1++fEHr+vbtG9j366+/dutmz55tBw4csNatWweFJmPHjrV7773XFixY4EIn6d69u7Vs2dKFDidPngzs26tXL2vQoIELdxJy+eWX23fffWfHjx8PrJs7d66VLVvWhSp+Wq/9pU2bNnbTTTe55ciRI27dqlWrbODAgfbyyy9biRIlIro/Os8HH3xghw8fDqz777//7L333gsEYJ6///7bLrjgAvvzzz/t/fffd0HNa6+9ZnPmzLGGDRvarl273PH89/ehhx6yWrVqBa1TKJRSjRo1Cjpmp06dXLjnX6d9xPvMN27caFOmTLE1a9ZYx44dIz6Xgid9ln/88Ye9/vrr7j5/8sknVqNGDXd9fgqWBg0alCrfRwAAAABAxkAohWRROOMt+fPnd6GBf12ePHkC+6pCSusUvDz33HO2detW++GHH9w2hVQf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pkyxiRMnuiohVRVpnLt27XLbN2zYYNddd517j45122232SOPPJJq5xedO3fu3K4S7JlnnnFB3ldffeW2eQGZwkHd29DALJzp06fbBRdc4I5VunRpF6j17dvXDh8+HNhHY1Fg5afr1npPjx493PXPnTvXPv74Y3vllVdcUJUQhXz79u0LWgAAAAAA0cH0PaSbDh06BL1WDyFVPSloypMnj1t3zz33BPZT6KSqGk3xUjizfv16V+2kQEMiqcoRnUNUnaVKH4/CqP79+1vnzp3d66efftoFHGqU/fLLLwf2S2hMKaVgRtejQMVTq1atQIin802YMMFat27t1r355psuENL5FZZpe+XKlV24JtWrV7dffvnFXUtKz++pW7euDR482P2u6jRVKylUbNGiReDeqvrNf28T8vfff7vwS5Vfn3zyie3YscPuuusuF/R5lW9btmyx4sWLB71Pr7Ve/vjjDxdOKnC88MIL3TrdE1VVJUTTAZ944omIxgkAAAAASF1USiHdqAJJfYI0zS1fvnyBUElhk0eVSJ6sWbO6wERVUXLnnXe6qXSaZqdASH2HkksVMps2bQqaMiZ67Z0vkjGllFepFI6mNh47dixojNmyZbOLLroocH79vPjii+Mdb0rO7w+l/EqWLJloRVJCVBmnqX6abqdradOmjT3//POuIstfLZUQXbc+CzWY96gpusKxhAwYMMD27t0bWFRpBQAAAACIDkIppBtNC9O0M1X7aCqYFjl69GhE71e10Lp16+yBBx5wgZLCFE37Op2pH1JGP7+CMD8FSv4pl0mlUEvT9vLnzx9YpwqnU6dO2b///uteq+pKjdD99DrSaqz4qHeYAlH/AgAAAACIDkIppAtNzVqzZo0NHDjQhUkKIbxm2n7ff/994Pfjx4/b0qVLg6ZkabrYzTffbO+++66bZvfGG28keu7s2bO7n/4+SQojSpUq5Zp8++m1+islZUwpoSokTYULR9PyNHb/GFU5pb5N3hg1Dq9nVrjxpuT8kVJo5b+3iVHll0LFAwcOBNZpOp56jKnpvFftFTouTVv0qsBUFeV9Fh59v/bs2ZOiawEAAAAApB1CKaQLPdVNPZ0UIv3111/2zTffuKbnodTLSX2Gfv/9d/dEOwVXPXv2dNsGDRpkn376qXv/b7/9ZjNmzIgoHNKT61QRpF5QqrbRtC1RTyb1Xvrwww9doKEG4ZrOdv/990c8JtF49D71O9L0M/2uJZIKME0nU8iknkpqtq5zqE+U+iypubimLGqcGrt6b/Xq1csOHTpkt956q3t/79693bRI7aNreO+991wPqkgldP5IaRqmAiRdf7igMdSNN97ovgu33HKLu6YFCxa48eueepVb+gx0zeqVpTHpiX9qkK/+Xl7vLD2d74477nAVdwqn1OQ9vSvPAAAAAADxI5RCulAVjPpBKTyoXbu2m4L37LPPxtkvJibGLeedd55rhq0ntXlP2FPVkEIUVfc0adLEsmTJ4o6ZGPUeGjNmjL3++uuuOuqaa65x6++77z4XjOnJenXq1HEhiM6nZt6RjkkUhqgBu46vih/9rkXVQInRk+e+/PJLW7lypeuvpEogBW8as3duNVnv3r271a9f3wVgs2fPdiGflCtXzj2db9q0aW58r732mg0fPjzR80Z6/kgoOFIVU9myZd11J0ZN7bW/qprUn6tr165uaqc+I0+jRo1cwKYQU9elp+vpGvXd8agpuj7Pyy67zD2B8Pbbb3cBJAAAAAAgY8p0So1bgAwmNjbWKlasaMuXL3eNzDOCjDgmpC41vFdvq7J9JlvmHLm4vWeB2Ji26T0EAAAA4Iz920ozkxLq3UulFAAAAAAAAKKOUApnHE1X05SwcIue2JeedP74xpaUaXan0/lr1aoV7zknTZqUJucEAAAAAGR8TN/DGWfXrl1uCUeNr0uXLm3pZePGja75eTiFChVyy5l2/nXr1rmnBIZTvHhxy5s3r51uJaYAAAAAgJT/bUUoBQBJ/A8nAAAAACB+9JQCAAAAAABAhkVPKQAAAAAAAERd1uifEgAyttqDZ1vmHLnSexhIA7ExbbmvAAAAQAZBpRQAAAAAAACijlAKAAAAAAAAUUcoBaSTIUOGWL169c7a+9+jRw+79tpr03sYAAAAAIB0QigFREGmTJls2rRpp8W9jlZYNHr0aJswYUKanwcAAAAAkDHR6BxAusifPz93HgAAAADOYlRK4azStGlTu/fee61Pnz5WsGBBK168uL355pt28OBBu+WWWyxv3rxWpUoV++KLLwLvmT9/vl100UWWI0cOK1mypD3yyCN2/PjxoGPed9991q9fPytUqJCVKFHCTc3zVKhQwf1s3769q5jyXnveeecdt04hTefOnW3//v0RXcusWbPs0ksv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W7Fixeycc85x22+44Qbbtm1bgseZP3++ZcuWzb799tug9QcPHrRKlSpZ37593etdu3ZZnz59rHz58pY9e3YrVaqU9ezZ09avXx/0vqZNm7r9Qk2YMMEKFCgQeK37qevt3bt30H66j1qv++o3ZcoUu+KKK6xgwYKWM2dOq169ujv/8uXLI7pfAAAAAIDoI5TCGU8hzNNPP227d+9OcD8FL4cPH7brr7/eJk6c6NY1atTINm/eHFg6derkgiH/Ou2TVGvWrHHvnT17th05csTatm1rR48eDdon9Dxa3n///SSfa/v27dasWTMrVKiQO9/q1att/PjxLjhSuJSQyy67zO69914Xkvn37devnwt/nnzySRdIXXLJJfb111/ba6+9Zn/99Zd98MEH7ueFF15of//9tyX3cxs7dqz9+eefCe7Xv39/F7ApFJw+fbq7t++9954LzQYMGJCscwMAAAAA0h5P38MZr3nz5i4gGTFihD3zzDPx7qcA5MYbb3RBzP333+/CDlX9lChRIrCPghiFSP51yaGKJVUG6TiqHFIV0++//25169YN7KOKrZSeR7777jvbu3evvfXWW5Y16//9J1+xYkW7/PLLI3r/8OHDbdasWe5+vPTSSzZ37lx3rEWLFrng6IEHHrBNmza5e+yNt1y5ci4Aq1q1qt199932xRdfJHncqnbSfXrsscds8uTJYff5/vvv3Wc6evRou++++wLrdf4GDRrYqVOnknxeAAAAAEB0UCmFM16WLFlcsPLiiy/av//+G3af/fv320cffWTdunWzFi1auBBn4cKFaT42nUdVRaIALC0oKDp+/Lh98sknyQppFDy9/fbb9sYbb9inn37qpsU9+uijLvQ5efKkG3/Xrl3jBGgK8O666y4XTqmaKjk07VJT85YsWRJ2uyrH8uTJ484TTrgpmgAAAACAjIFQCmeF9u3bu+ldgwcPDrtdwYqqemrVquVCrM6dO7vKqbRSpkwZF6aoWkpTzVQppX5WfjNmzHD7+BeFa0mlqXUKkVQFVqRIEWvdurU9++yztnXr1oiPccEFF7ipcNddd50VLlzYVS95UwP37NljNWvWDPs+rVcQpiqq5Khfv76bMqkqrXD++OMPN03PqwCT559/PuieKfiLj6re9u3bF7QAAAAAAKKDUApnDfWVUq8o9VQKNW7cOFcl5dHvqpxSBVVa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YU899ZQLuETBj/e+KVOmuHVr1qwJrBs9enSKruP777+3iy++2I4ePWqff/65/fHHH+78CmQUtGm93/r1623RokV2zz33BMYY6pxzzrGnn37adu/enaKxede5atUqu+OOO+zOO++0OXPmxNlv7Nix7p4uWLDANm3aZKkpd+7ctm3bNhd8hZ6zXLlyYd+jz0khWo0aNYLCwFtvvdU++OADF1qFGj9+vF199dUuyPL4P2dvKVasWGC7zqF1+kz0/lmzZrl7BAAAAADIuAilkGKqailRooSVLl3a6tevb48++qh9+umnLqBSoOPJmzev28+/KOjwK1y4sFtfvnx569q1qzVu3NiWLVvmtql6yXufqm9EwYS3Ln/+/Mm+BlVjKShRJdDUqVPtoosucmPo2LGjffbZZy6IeeGFF4Leo/BDwZvCj/fffz9swNK8eXM3thEjRlhKeNdZsWJFu++++9xP7754Dhw4YB9++KEbjyql/Pc+NWTNmtVuvPHGoADu33//ddVMWh+OAqtu3bq5Rb979Fr3ywsXPf/88487nj4LP//n7C2ZM2cOGpv3HdQ91+f21VdfpeLVAwAAAABSG6EU0sQVV1xh5513ngt4kmvJkiW2dOlSV72U1jSlTVVIDz74YFDYIboOBR0KnvwhlkIphSuqAtJUw48//jjOcTWdbPjw4fbiiy+6ACeldF5VAakiKPS+TJ482Y2levXqblwKj7ypj6mlZ8+e7jzedEYFX6qU07TNUGvXrnVhnqZDalm4cKGtW7fObVMV1DXXXBOnwkzHK1OmjF155ZXJHqMq9mbPnu2mgCZGUwr37dsXtAAAAAAAooNQCmlGAYkCAk///v0tT548QYuCCr9GjRq59QoULrzwQhdm3HTTTWn+KWmqnoTrmeSt9/bxphkqmFFPKQmtBPJr37691atXzwYPHpzs8Smo8e6LqqB0rCZNmoStShIFRXv37rX58+dbajr//POtUqVKLoBT4KUQSUFVOAqcWrdubQULFnSVbbpXCvI8qoZSVZSqo0THmzhxot18881xgkHv+r1F0/X8fvnlF7dePbdURabeYPq+JUYVbKqw8xb1owIAAAAARAehFNKMQgZ/Q++HH37YVST5lwsuuCDoPZp+pvUrV650FTmaBvjII49E7VOKtLJIgcsNN9zgpo1Jly5d7LvvvnPVQeGor5QCl9WrVydrXArvvHv21ltvueqrV199Najn0o8//ujGIRqXxhdfUJYSCqEULinwOnjwoLVp0ybOPidOnHDX64Vkot8VYnkN8NWnS2GTF1SpR5YqwG655ZYEr1/LzJkzg7arOkzr1XdMYZQCsNB+ZeEMGDDAhXfesmHDhmTdEwAAAABA0hFKIc0ogFHVikdTtjTNzb+ossVPlSpar8ok9QXq06ePjRw50v777780/aT0lD1vzPFdi7ePnur2ySef2CuvvOLCHy3qZaSm7vE1PFdVk4IShSDJofuo+6IKIYU23bt3d03YPQqfdP5SpUoFxqTQSj2bFLakJvX6UlN4PfVO4/CCOT9Nn9u4cWMguNPSuXNnN33Pa9Cuaig9oVDhlYIqhVNqkq9KrPiu31vU78vPe1pj7dq13dMONW1SjfIj6YeWL1++oAUAAAAAEB1x/5pMhKbaJLdPTbg/NnFm+uabb9yUqgceeCBFx1G4oLBFT77Tk+zSiqbXabqhmpkrPPFPH1PVlqbrec3KJ02a5Cp8/E+Tky+//NIFaHrKoMYdSmGJzqOqnpTS8b3G6ro/b7/9tjt3aC+ma6+91vXC6t27t6UWTcXT0/FUyfbaa6+F3Uchme7jY489FrReQZq2qUpKFLA9+eSTrveYgj5VgaWGgQMHur5mavquoA4AAAAAcAaEUqpg0RPWkhpMqWG1ggWcedQsesuWLW7K1tatW10jbgU4ejKdvx/U/v373X5+uXLlCqpO2blzp9tHQYtCrdGjR7vqmdSsYFGwqqleflWrVg2EJR06dHAVTXqa2w8//GAPPfSQNWzY0FVtifa7/vrrXVVOaJWX3qfrV9+nUHXq1HFVRmPGjEnymLdt2+aqxXSvNU3vnXfecWOQGTNm2O7du12PptAnEOpaNF5/KKWpfqFUgZUtW7aIx6NpeKoU09MSQ23fvt09sXD69Olx7pG+D+qxpWozhVuqgFJ4dPvtt7uqpeuuuy7B6/fTueMbsz6vunXrummOL730UsTXBQAAAADIwKGU/ghctGhRkk+kZsc4MymEKVmypJuipc9ZT6tT8BLasHrQoEFu8bvjjjuCqm30lDuvEkjHVL8i/zS11KAn7IXrWXTppZe6aWma9qUG3QrRypUr565DYZNCE4Wrqpx688034xxDgVCzZs1cCBQulBJVUalvVlJ51VW6xwq/dN80fU50Pt230EDKC6WeeeYZ+/nnnwPBniqYQqmXkqq/IqVpl6FTLz2q2sqdO7e7F6G0Tu9799137b777nPrFKZpSt9dd90VbzVcuOoyPdnvkksuiXeMqtLT9ED1mKKBOQAAAABkPJlOJbHkSX/YJuex6aqKUHUEAGRU+m+bewpfn8mWOUeu9B4OwoiNCR/4AgAAAMh4f1upx3FCM59odA4AAAAAAICoI5TCGUP9g/LkyRN20XS8jEjjim/Mup5oUU+p+Mahxu4AAAAAAKQ2pu/hjKHpofFNEVUfo9KlS1tGs3HjxsBT9MJNedUSDevWrbNjx46F3Va8eHHLmzevnQ0iLTEFAAAAAKT8b6skNzoHMqpohjipJaMEZeXLl0/vIQAAAAAAzjJJDqX0WPYmTZok6T3qpa4nmQEAAAAAAADJCqVWrFjhQqakypQpE3ccAAAAAAAAyQul6tev75akUIi1bNkyO3LkSFJPBwBRV3vwbMucIxd3PspiY9pyzwEAAICzSJJDqWzZstmiRYuSfKKCBQsm+T0AAAAAAAA4M2WO1jQ8pu8BAAAAAAAg2aFURjJv3jwXdu3Zs8cyiiFDhljx4sXduKZNm2Y9evSwa6+9Nr2HhVRWoUIFGzVqFPcVAAAAAICzMZRKqQkTJliBAgVS7XirV6+2J554wl5//XXbvHmztW7d2k6XsfspSFOoFrrUqlUrovc3bdrU+vTpkyZjQ8aTlt9FAAAAAMCZ66wOpSJ19OjRiPZbu3at+3nNNddYiRIlLEeOHHY6Gj16tAvVvGXDhg1WqFAh69ixY6qdQ83vjx8/nmrHAwAAAAAAp5cMFUqpwubee+91VTZqjK5pcG+++aYdPHjQbrnlFsubN69VqVLFvvjii6D3fffdd1a3bl0755xz7JJLLrFff/01oql/OubevXsDlUCaeudNzRo2bJjddNNNli9fPrv99tsD1SCzZ8+2mjVrWp48eaxVq1YutBG996qrrnK/Z86cOWwPrRkzZrhjnDhxwr1esWKF2++RRx4J7HPbbbdZt27dkj323bt3u3Hr/uXKlctVa/3555+B93rXoamFVatWdfesZcuWLnjy5M+f34Vq3rJkyRJ3XJ0zkiqr+fPnu2DLG1tsbGxgqqU+uwYNGrjA7ttvv3VBnkI8fda6pxdeeKF9/fXXQcfU5zF8+HDr2bOn+w6UK1fO3njjjaDQ8J577rGSJUu66ylfvryNGDEisF3TO++44w53Dm2vXbu2+yw8U6ZMcVVgGpPONXLkyKDzb9u2zX22OXPmtIoVK9qkSZPiXLfOoc+uaNGi7jtzxRVX2MqVKy0Skd6DJ5980n222kfXOH36dNu+fbt7r9bp34A+K7/Ers2bZuqn74e+J6LPTvtMnTrVLr/8cvedOu+882zx4sWJfhcT8sorrwS+f7ru66+/PsGpkfXq1Qs6rs6jisR27dq5MenfpMb0119/uf+O5M6d2xo1ahQIigEAAAAAZ0AodeTIEWvSpEmSlv/973924MCBiI4/ceJEK1KkiP34448uoLrzzjtdhY7+wFy2bJldeeWV1r17dzt06FDgPQ8//LD7Y/unn35yoYAChGPHjiV4Hh1Pf/gqQPAqgvr27RvY/txzz7k/vpcvX26PP/64W6dzav0777xjCxYssPXr1wfeo5/jx493v3vHC6X7sH//fndMUXija9Uf9h6t0x/VyR27QiEFEwos9Ee6KpLatGkTdD90HU899ZS9/fbbLtBToNK5c+d4zzd27Fhr3ry5C0ISozCqYcOG1qtXr8DYypYtG9iuAC4mJsZNdVSIou+Fxjdnzhx3XxT06fPTvfXT53vBBRe4fe666y73vVizZo3bNmbMGHe9kydPdusUGinYkJMnT7pgTtf57rvv2qpVq9z5s2TJ4rYvXbrUOnXq5K7/l19+ccGHPm8vlPHuqUK7uXPn2scff+wCFQVVfvqOap1CNx2zfv361qxZM9u1a1ei9yzSe/DCCy9Y48aN3T5t27Z1/w4UUinE1L+NypUru9f6zCO9tkg99thj7jumILVatWrWpUsXV+mW2L+jcPT9vO+++2zo0KHu85o1a5b770RSecGxxlSjRg278cYbXfg4YMAAdw7dB4WVAAAAAICMKWtS36A/iL0/etOCgqCBAwe63/XHpQIEBTcKOWTQoEH26quv2s8//xx4z+DBg61FixaBUKtMmTL2ySefuD/I45M9e3ZXEaSKC1UDhVKly0MPPRR4vXDhQhfsvPbaa+6Pf9EfvPrDWlSp4vXVCXc80flU8aEQSgGLfj7wwAOuD5WCCVWbqNLjsssuS/AexTd2VUQpnFEAo7BAFNAoFFI1jDf9Ttfx0ksv2cUXXxy4Z6o0URB40UUXBZ1r06ZNLmh57733EhyT/xo1PlWvhLsPul/eZyWaFqjP3B806LPTdfgDBYU2CqOkf//+LqBRSFS9enUX3qjq5tJLL3X3xB+eqeJI16UQTGGKVKpUKbD9+eefd+GRFzxqHwVXzz77rAuj/vjjD3f9OoYqmLyQTvfLo4ovbVco5U3ZVHipe64QS5V2CdH1R3oPFLr4/x1oTN7nqvuiQHDr1q3u3id2bUmhoElBmOj7quorfVcVBiX07ygcfV6qZFKVkyrf9Hmdf/75llSq0PL+jXvXrmtV5Z/cf//9iVb3KWTX4tm3b1+SxwEAAAAAiFKl1Lnnnuv+IE3OEglVz3hUzVK4cGGrU6dOYJ2m+oi/UkV/jPpDDgUVCiFSQqFRKAUtXiAlmi4WWjGTGAVOCqMU7Cnouu6661zAoWBDVVKlSpVyAUty6JqzZs0aCJtE9y/0fmgfL2ARBQsK1MLdMwVW2pZaTxAMva8K4xR46B7oPAr3NI7QKiH/98ILQLx7r4BF1TK6TlXgfPnll4F9tV4hpRdIhdK5VH3kp9cK+DTN0runmnIYer88mqan69C91vi95Z9//olo+lhy7oH37yChfxuJXVtS+M+t773/PEmlUFJBlMJBVXspOPVXPiZnTPHdj//++y/BoEnTPBWqeYu/qg8AAAAAkMEqpdJatmzZgl4rgPCv83o1aVpWWlIlRyRjS2rVmKbmjRs3zgUZOp4CDq1TUKW+TYlVSUWTrk1jVXCg6qe0uK8KY7766itXWaR+YerbpP5Coc3lw9177zugqXIKgFTRpMooVc9ouqGqlHS8tKZQSUGNfxqmJ5Kn0iXnHnj/DlL6byPcdzjc1NfU/Deo6ihNN9T9UoCoqi9NLdT0W90v9WRL7piSOk5VYz744IOB1wqwCKYAAAAA4CxsdJ5c33//feB3BTuacuWfXhUfBS1JrRhJKa+vlKafeQGUF0ppSayfVEJj1zWrz88PP/wQWLdz507Xt0cVbh7t42+Ire3qKxV6z1S5pSlat956a5KuMSn3VVMNVenUvn17V+WiCig1104q9TS64YYbXGP8Dz/80DX4Vj8nVdP8+++/7jsRjq5ZYwgdkyqrVKmn0FD3S/2ZQu+XR6HYli1bXEWVQiX/oqmn0boHSb02UQ82f/8zVVEltWopOf+OdK8UHD7zzDNuKq6u95tvvgk7JgVFCh3TgqZb6rvjXwAAAAAA0XFGhFLqU6Qm0Xrqnv64VxAQyXQzNcNWlYveu2PHjmRNIUoqPRVPQYmmLHkBlJo8q3JEwUmklVLhxq5pf3oSm/pvaTqgqrHUBLt06dJuvUfVJGoir/BKYYvumZ5aGNpPSr2TNBVQT6tLCo1Nx1bQoLElVKmiMevJbppmp/GqWXVSK3DUO+n999+333//3d3Djz76yAU7qrrR/dT97dChg6tG8iqq1Fxb1DdM91B9nPReTVdUvy2vWbemBKrxuHo5efdLT9nzV2ApXNEUUn3nVPmj6160aJFrDh76NLy0ugfhJHZtXu80rVOvOI21d+/ecarSUvvfkZ58qOb0ut5169a5hvu6Xt1rb0x6mICmt6pB+8033xwI0QAAAAAAZ44zIpRSM3Q1NVbfH1WsfPbZZxFNN1MzcP0RrgobVWeoaiMaFJSossQLpdQHS5VMClK8P8yTO3Y9AVD3QU2kFZRoGtTMmTODggb1xlJjaIUf6jGkHkaqLvJT03VVGyW1SkoUeihE0DVpbKG9kUIDJQV1uh49cU5NqlV5lNTpYLp+9atSryyFQrpmTQMTXYfW64lxGlO/fv0ClT06l57a98EHH7jwTVPJFHL6G4HrnqrXlz439QBT4/JixYoFTRPT+RR+qbG2KpH0xDsFLl6vo4Skxj0IJ5Jr01MNNV1NFXz6Puiz0/cjKZL670hhoUI4hU+q5tLDAxQqen3nNKVO91rfYTVXV9jn7+UGAAAAADgzZDqVlo/SQ4YzYcIE69OnT9D0MwD/f6qga3jeZ7JlzpG0cA4pFxvzf5/wCAAAAODM+NtKBS8JtUk5IyqlAAAAAAAAcHo5o0Op1q1bu6lp4Zbhw4dbRpZRx66pePGNS0tCU/XOVpqWFt/9Um+xM416QSX0HQEAAAAA4Iyfvrdx40Y7fPhw2G3q46Qlo8qoY9eT6BJ6MpyaXuvJavj/1Fvq2LFjYW+Jek6pJ9aZRN9bfX/jo6cSnu4lpgAAAACAlP9tdUaHUgCQFIRSAAAAAJBy9JQCAAAAAABAhnVG95QCAAAAAABAxkTzHwAIUXvwbMucIxf3JYpiY9pyvwEAAICzDJVSAAAAAAAAiDpCKQAAAAAAAEQdoRQAAAAAAACijlAKOI3MmzfPMmXKZHv27Em3MQwZMsTq1asXeN2jRw+79tprA69PnTplt99+uxUqVMiNdcWKFWHXpbXY2NionQsAAAAAkHQ0OgeipGnTpi7MGTVq1Bl1z0ePHu1CJ8+sWbNswoQJLkCrVKmSFSlSJOy65FIIplBu2rRpqXQFAAAAAID0QCgFIEXy588f9Hrt2rVWsmRJa9SoUYLrAAAAAABnN6bvAf+vuufSSy+1AgUKWOHCha1du3YuSPEsWrTIVTmdc845dsEFF7gqndCpYb/++qu1bt3a8uTJY8WLF7fu3bvbjh07AtU98+fPd1VFep8WTS9LzMyZM61atWqWM2dOu/zyy+O8Z+fOndalSxcrXbq05cqVy+rUqWPvv/9+YPvbb7/trufIkSNB79N0O40vEjExMe568ubNa7feeqv9999/Qdv90/f0+7333mvr169311ihQoWw6xLz8ccfu2vRdWv8zZs3t4MHD7qpgxMnTrRPP/00cB9VfSU//vijnX/++YHPaPny5RFdHwAAAAAgfRBKAWYu8HjwwQdtyZIlNmfOHMucObO1b9/eTp48afv27bOrrrrKhSTLli2zYcOGWf/+/YPum6aTXXHFFS4U0TEUcm3dutU6derktiuMatiwofXq1cs2b97slrJlyyZ47zds2GDXXXedO7fCr9tuu80eeeSRoH0UEDVo0MA+//xzF4qpb5PCJgU00rFjRztx4oRNnz498J5t27a5/Xv27JnoZz958mQXBA0fPtxdl6qdXnnllXj313UOHTrUypQp467xp59+CrsuIdpHQZvGt3r1ahc66T5oimDfvn3dPW3VqlXgPqr66sCBAy5IPPfcc23p0qVuzNo3MQrr9Pn6FwAAAABAdDB9DzCzDh06BN2HcePGWdGiRW3VqlX27bffuoqcN99801XhKPjYuHGjC5g8L730kgukFN74j6Hg6Y8//nDVTtmzZ3fVTCVKlIjonr/66qtWuXJlGzlypHtdvXp1++WXX+zpp58O7KMKKX/4ooqk2bNnuzDpoosucpVGN954o40fP94FVPLuu+9auXLlXI+rxKj/laqjtMiTTz5pX3/9dZxqKf9UPlVUZcmSJeg6w62Lj4Km48ePuyCqfPnybp0CQY+uSWGS/1jqV6UAcezYse4zqlWrlv3777925513JniuESNG2BNPPJHomAAAAAAAqY9KKcDM/vzzT1edoybc+fLlC0wx05SzNWvWWN26dV3Y4VHg47dy5UqbO3eum7rnLTVq1HDb/NMAk0JVQhdffHHQOlVb+akKSpVbCm30ZDudV6GUxu1RePbll1+6IM0LcDSlTkFbaowhtZ133nnWrFkzd00K0hQG7t69O9Fxhn5GkYxzwIABtnfv3sCi6jQAAAAAQHRQKQWYuSlyqspRAFKqVClXdVO7dm07evRoRPdH08d0DH8Vk0dT3tLKs88+66bHqaJJIU7u3LmtT58+QeNWBZeCHvWXuvLKK+23335z0/cyKlVUffXVV66Pl8K0F1980R577DH74YcfrGLFiql6rhw5crgFAAAAABB9VErhrKdm4aqGGjhwoKvQqVmzZlBljjdtzt8sPLQvUv369V3YowqrKlWqBC0KikTT91TZFCmNw+sN5fn++++DXn/33Xd2zTXXWLdu3VzwpEovTRcMpX5UqpDSND41DU+sn5V/DAqDEhpDWlAVV+PGjd3UOjUs17375JNP4r2PGufPP/8cNK0wGuMEAAAAACQfoRTOegULFnRPeHvjjTfsr7/+sm+++cY1PfeoJ5Mqp9REXNPEND3uueeec9u8KXB333237dq1y00BVGClKXva75ZbbgkEKAqsFPDoCXp6Kp+OmZDevXu7aYUPP/ywC83ee+89Fyz5Va1aNVBVpLHdcccdrsF6KF2DeiypEiySBuee+++/3/XGUpilsGvw4MEufEtLukdeY3VNQ5w6dapt377dBU/efVQApXui+3js2DF3ffosNFVRfcD01ELvMwIAAAAAZEyEUjjr6Ul7H3zwgXtqm6bsPfDAA25anEc9pj777DP3BLx69eq5qWSDBg1y27weRpryp6olBVCaIqepdJpGV6BAAXd8UUNyTU1To3Q1Uff3fQpHzcinTJli06ZNc1VQr732WlAjdVF1l6q0WrZs6RqXq/n3tddeG7YBuZq5q+dUuO3xueGGG+zxxx+3fv36uaf8rVu3LtHm4Sml+71gwQJr06aNaxCva1Sz99atW7vtCp5UvXbBBRe4+6j7ruvSZ6SKNk1X1GcUbiolAAAAACDjyHRKz1kHkCSTJk1yVVBqjq2nwZ0ONDVRT6UbM2ZMeg8lw9q3b58L8Mr2mWyZc+RK7+GcVWJj2qb3EAAAAACk8t9W+ptZhQfxodE5EAE1CVe/ptKlS7sn7fXv3986dep0WgRS6o81b948t7zyyivpPRwAAAAAABym7wER2LJli2smrr5Gmt7XsWNH14MqJdQzStPOwi3allo0na1Hjx5uOpumvfmpciq+MagaLC1o2mJ859SS2LRGAAAAAMCZgel7QDrZtm2bK2kMR+WNxYoVS/MxqEeUGoWHU7x4ccubN2+qn/P48eOu2Xt81Mg8a9asGbrEFAAAAAAQP6bvARmcQqdoBE8JKV++fNTPqcCpSpUqUT8vAAAAACBjYfoeAAAAAAAAoo5QCgAAAAAAAFHH0/cAIETtwbMtc45c3JcUiI1py/0DAAAAkCAqpQAAAAAAABB1hFIAAAAAAACIOkIpAAAAAAAARB2hFHCGatq0qfXp08cyogkTJliBAgXSexgAAAAAgHREKAWcpU6dOmXHjx9P72EAAAAAAM5ShFLAGahHjx42f/58Gz16tGXKlMktqk7Szy+++MIaNGhgOXLksG+//TbB46xdu9auueYaK168uOXJk8cuvPBC+/rrr4P2qVChgj355JN20003uX3Kly9v06dPt+3bt7v3al3dunVtyZIlbv958+bZLbfcYnv37g2MbciQIYle05EjR6x///5WtmxZN/YqVarY2LFj7eTJk1amTBl79dVXg/Zfvny5Zc6c2datW5esewgAAAAASFuEUsAZSGFUw4YNrVevXrZ582a3KMyRRx55xGJiYmz16tUuLErIgQMHrE2bNjZnzhwX8rRq1cquuuoqW79+fdB+L7zwgjVu3Njt07ZtW+vevbsLqbp162bLli2zypUru9eqzmrUqJGNGjXK8uXLFxhb3759E70mvf/999+3MWPGuLG//vrrLvBS8NSlSxd77733gvafNGmSG5NCsoSCrn379gUtAAAAAIDoyBql8wCIovz581v27NktV65cVqJECbfu999/dz+HDh1qLVq0iOg45513nls8w4YNs08++cRVQt1zzz2B9Qqu7rjjDvf7oEGDXNWSqqo6duzo1qnCSSHZ1q1b3Xg0PlVIeWNLzB9//GGTJ0+2r776ypo3b+7WVapUKbC9a9euNnLkSBeWlStXzlVPffDBBzZw4MAEjztixAh74oknIhoDAAAAACB1USkFnGUuuOCCiPdVpZSqmGrWrOkak6sySVVKoZVS/oorTfWTOnXqxFm3bdu2ZI15xYoVliVLFrvsssvCbq9Xr54bo1ctpamLOpcXisVnwIABbhqht2zYsCFZ4wMAAAAAJB2hFHCWyZ07d8T7KpBSZdTw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5DiP//7ee+Ibl/pvaQEAAAAARB6hFJDOaJqcnq6XFMuXL3dN09u2beurnNq6dWuaGBsAAAAAIHNg+h6Qzmia2rfffutCpL///jtRVUrq3fTRRx/Z2rVrbd26dXb77bcnudrJG5sCLvVy0tiOHz+e5GMCAAAAADImQikgndHUOzU3r1atmhUrVixGH6hwjB492goXLuyemKen7jVv3twuvfTSJI9Nx+vZs6d16tTJje25555L8jEBAAAAABlTlnNxPWMdADIRPfXPPYWv90zLmitvag8nzdka3Sq1hwAAAAAgHf1tpQdKFShQINb9qJQCAAAAAABAxBFKARlQ9erVLSoqKuQyffr0iI1j6dKlsY5DCwAAAAAg82L6HpABbdu2zU6fPh1yW4kSJSx//vwRGceJEyds586dsW6vWLGipccSUwAAAABA0v+2yh7HMQCkU2XLlrW0IE+ePGkueAIAAAAApA1M3wMAAAAAAEDEEUoBAAAAAAAg4pi+BwBBagyZb1lz5eW+BNka3Yp7AgAAACDZUCkFAAAAAACAiCOUAgAAAAAAQMQRSgEAAAAAACDiCKUyqG7dulmWLFksOjo6YP2sWbPc+mBVqlSxXLly2e7du93rxYsXu/3iWrTP0KFDrXbt2jGOt3XrVrfP2rVrQx6vWLFidsMNN9j69etDjjt4adGiRYKuf+TIkZYtWzYbNWpUyO26zl69elnFihUtd+7cVqJECbvqqqvslVdesePHj/v2K1euXMjxBN/XULx74C05c+Z05xs+fLidO3fOpk2bZvny5bNff/014H1//fWXFS5c2CZMmBDvOfzHlzdvXqtZs6ZNmjQp5L7vvvuuuycPPvhgjG3e51O9enU7c+ZMwLZChQrZ1KlTA845duxY32tdy+OPP24FChRwx0nImPPkyeNed+zY0b766qs4v0PB99NbunTpEtZ2AAAAAEDaQiiVgSlsefbZZ+3AgQNx7rds2TI7ceKEtW/f3t588023rkGDBrZr1y7fotBAwZD/Ou2TUJs3b3bvnT9/vp08edJatWplp06dCtgn+DxaFKgkxBtvvGH9+vVzP4P9/vvvVqdOHfviiy9sxIgRtmbNGluxYoXbf+7cubZgwYKA/YcNGxZjPA8//HDYY9Hx9J4tW7bYU089Zc8884wbV9euXa158+YuiDt79qxv/x49eljdunVDhkeheOP76aefXACj93/++ecx9ps8ebK7Rt3Lf//9N+SxdG/eeuutsK9NAVb37t3dexYtWmSNGzdO0Jj1fdB7FXw1bdrU3Ztw76e3vPTSSwnaDgAAAABIGwilMjD9kV+yZElXNRQXhRW33367C0m8EEdVPXqvt6iiRZVU/uu0T0IVL17cvffSSy+13r17244dO+znn38O2Cf4PFpUORSuJUuWuJBNwcfhw4ftm2++Cdj+wAMPWPbs2e377793YVvVqlXtoosusptvvtk+/fRTa926dcD++fPnjzEeVTiFq2jRou49ZcuWtc6dO7uKrNWrV7ttr776qv3yyy82evRo91oVScuXL7cpU6aErGgLxRufrqF///5WpEgR+/LLLwP2+eOPP9x9GDBggFWuXNk++uijkMdS2DZkyBAXGMZH+3To0MGFQEuXLnVBWri8MV944YXWqFEje+211+zJJ5+0wYMHu6AqnPvpLQULFkzQdgAAAABA2kAolYFpqpYqgcaPH29//vlnyH2OHDli77//vquwuf766+3QoUMuYEhpOs+MGTPc74kJt+IL2W677TbLkSOH+6nXnv3797sKKVUhxRYshRsGJYaCsB9++MGuuOIK91rTGL1ARkHSo48+ai+++KKVKVMmwcdWtdWHH37oKuOC76lCLlWlKaDRZ+1/T/wpKPzvv//cdyYuR48edcfbuHGjC9EuvvhiSypNp9RUwE8++cQiRcGagkv/BQAAAAAQGYRSGVzbtm1dzydVv4SiYKhSpUqul5BCrFtvvTXWwCI5XHDBBRYVFeWma73zzjt20003uX5W/jSFTvv4LwrXwqFQ4YMPPvD1EdLPmTNnuhBF1L9JwUdwiHLeeef5zqVqI396HTyehAR3muao9ygouvzyy1111h133OHb3qZNG9/0yGuuucbuvPPOsI/tPz5VmGkKpqrK7rnnnoCwShVY3j3RZ6wpm6qeCqa+VPquqLpOwWFsnn76adfrSfchMQFaKKrwUiWdekOFcz+9RdMvE7Ldn65TQZ23JNe1AAAAAADiRyiVCaivlHpFbdq0KcY2TdfzbwSt31U5pQqqlKAQQ5VCCkk0jWzixIkx9rn22mtd4OG/9OzZM6zjq19ShQoVrFatWu61AjlNm3vvvffifN+qVavceRTOBU9d69u3b4zxXHbZZWFfs86t96xbt84FZKoE0jQ6f6qUUng0aNCgsI8bPD41ClcF1pgxY1xDdY8qsI4dO+Yay3sBnKriQvXbEvWI0hQ4fW9i06xZM3fMcMPCcCkwjK9Szbuf3lKtWrUEbfc3cOBAF755i6aTAgAAAAAiI3uEzoNUpJ49aqitP8DVVNujqVcrV650gYx/dZCaV6uCSg2z46MnroWqqDl48KD7GdzPp3z58q5KSpVKe/futU6dOtnXX38dsI+m1fmHKgmhKq8NGza4nlEehT0KYBS26LgKPYL7Fqkfk6h3VjCFOIkdj6j6xnu/+lf99ttvLoTSkwvVjF688fqPO1ze+LQoUNQT+BSaeWGM7sk///wTcG26Jz/++KNrvJ41a2A2rTGo4bi+Kw899FDIczZp0sT1n1IfLh1LUw6TSlMr9+3b574j4d7PxGz3p+oyLQAAAACAyKNSKpOIjo62OXPmuKfMeRRWKLBSBY9/ZUmfPn3CnsKncEn9qvbs2ROwXo28FbiokXVs1NdJT4z7+OOPLTmsX7/e9WxavHhxwPXota5bDdVVAaQqoQkTJrhKn9SgaZLq2xT81MHkoEBGQZ8CSC/oUWWWQkb/e6Ipbeo9pf5aoaiBuarGFFrFVS2l79Trr79ujzzySJLHrmBLAZmmMwIAAAAAMj4qpTIJVc/oyW/jxo1zr0+fPm3Tpk1zT6irUaNGwL7qR6SnwaniSMFEXFSBpWBKDcWHDx/unnamQErT0NS4WgFMbNS/SNVY6mGkIMKbtqXpc7t3745RvaOKoLgoSKtXr54L2oKpl5O2jxo1yl5++WX3BDxVE6la6ZJLLnFhyHfffeeCq+CnyGkqY/B4NHZViYVDwZDeryBKwZnCF01RDPf9CaX7rs9UAZ16RymIU8+q4Glxms6ne6JeVrEFmfp843vCo3qA6YmFqphS2BcO757qe6jeVm+//bZNmjTJ9XhKSlUaAAAAACD9oFIqE1EApeBAZs+e7cISNUIPpilmWsKpllJYpGobVUQpmFIYopBJwYiaYcdH08PU60rTzjzz5s2zUqVKBSwNGzaM8ziqOlKw0a5du5Dbtf6tt95yIYh6TqlSSIGKKorUf0oBlZ449/jjj8cY9+DBg2OMp1+/fhYunUfvKVeunN17770uDIqvx1VSaNqeqpg0bk1b1Gccqk+T7om+B3///XfI41x33XVuUZgWF+3z6aefuj5hqn5TX6j4ePdUAVTXrl3dFNCFCxfGaDIPAAAAAMi4spwL5y9IAMgE9PRG9xS+3jMta668qT2cNGdrdKvUHgIAAACAdPS3lQoQ4polRKUUAAAAAAAAIo5QCunG9OnTLSoqKuQSX++rlNCzZ89Yx6NtGe16M+qYAQAAAACpg+l7SDfUHDv4KX+eHDlyWNmyZSM6nr1797qSxFBUnli8ePEMdb0ZdcyJKTEFAAAAACT9bytCKQBI4H84AQAAAACxo6cUAAAAAAAA0ix6SgEAAAAAACDiskf+lACQttUYMt+y5sqb2sNIM7ZGt0rtIQAAAADIgKiUAgAAAAAAQMQRSgEAAAAAACDiCKUAAAAAAAAQcYRSyFC6detmWbJksejo6ID1s2bNcuuDValSxXLlymW7d+92rxcvXuz2i2vRPkOHDrXatWvHON7WrVvdPmvXrg15vGLFitkNN9xg69evDznu4KVFixZhXXe5cuVs7Nixvtfr1q2zm266yYoXL265c+d22zt16mR79+6N91jeNWTLls127twZsG3Xrl2WPXt2t137hbpm77W35M+f36pXr24PPvigbdmyJeB4U6dO9e2n8xUuXNiuuOIKGzZsmB06dCjGPWrTpk2c9yDUPQz+LgAAAAAA0gZCKWQ4CmGeffZZO3DgQJz7LVu2zE6cOGHt27e3N998061r0KCBC168pWPHji4Y8l+nfRJq8+bN7r3z58+3kydPWqtWrezUqVMB+wSfR8u7776b4HPt27fPmjRpYkWKFHHn27Rpk02ZMsVKly5tx44dC/s4559/vr311lsB63SftD4cCxYscNeggGzEiBFuHLVq1bKFCxcG7FegQAG3359//mnffPON3Xvvve68Cv3++usvSwiFWcH38OGHH07QMQAAAAAAkUEohQynadOmVrJkSRs5cmSc+02ePNluv/1269q1q73xxhtuXc6cOd17vSVPnjyuksp/nfZJKFUs6b2XXnqp9e7d23bs2GE///xzwD7B59GiyqGEWr58uasymjRpktWpU8fKly9v1157rY0ZM8b9Hq4777zThVn+9Frrw1G0aFF3DRdddJHdfPPNLqRSFVT37t3tzJkzvv1UzaT9SpUqZVWrVnXbFU4dPXrU+vXrl4ArN1eVFXwP8+XLl6BjAAAAAAAig1AKGY6mgakyZ/z48a76JpQjR47Y+++/b126dLHrr7/ehThLly5N8bHpPDNmzHC/JybcCoeCmP/++88+/vhjO3fuXKKPo+l/qjZTRZnop163bt06UcfLmjWr9erVy7Zt22Y//PBDvCFe586dbfbs2QEBFgAAAAAg4yCUQobUtm1bN/1ryJAhIbcrGKpUqZLrdaQQ69Zbb3WVUynlggsusKioKCtUqJC98847LvBRPyt/c+fOdfv4LwrXEqp+/fr2xBNPuCqw8847z1q2bGmjRo2yPXv2JOg4OXLkcKGdV0Wmn3qt9YnlXbPXjyq+fRUe7t+/P+zj9+/fP8Y9jCts1FTKw4cPBywAAAAAgMgglEKGpb5S6oGkXkbBvIDFo99VOaUQJCUoGFF1kBp7V65c2SZOnBhjH02xU7Nw/6Vnz56JOt8zzzzjmrfrPAre9FMhT3CD9fjcfffd7r7oWPqp10nhVW6FajqflH09ffv2jXEPL7vsslj31xTPggUL+pYyZcqEfS4AAAAAQNIQSiHDatSokTVv3twGDhwYsH7jxo22cuVK169IT5LTouqi48eP+6bWxUfNuYOfDicHDx50PxVw+FMvp4svvtj1Y7rnnnvck/CCqfdRxYoVAxY1K08s9XTq0KGDPf/88y6YU6Nz/Z4QNWvWdGHWbbfd5vo91ahRw5LCCwjD6W2lfXWfdR3hUmVY8D1UX7DY6Luhz9Fb1OsLAAAAABAZhFLI0KKjo23OnDm2YsUK3zpN01NgpafC+VfU9OnTJ+wpfAqY1K8qeErc6tWr3dP/Lrzwwljf++CDD9pPP/3kej5FivpXVahQIUFP3/OoOmrx4sVJrpI6e/asjRs3zgVSasAel71797ppjm3atHG9qFKKmssr+PJfAAAAAACRkT1C5wFShSp91DBbYYicPn3apk2bZsOGDYtR9aMKptGjR9uGDRvclLe4qAJLwZQqiIYPH+6aiyuQGjRokGvmrT5VscmbN6/16NHD9btS6OJNT1N/I02T86cqLlX/JIR6U6niS32yNFVQ0+AUzH322WcxnqYXDo1VFVfqh5UQ6gWl61EFmkK4sWPH2qpVq+zTTz8NuD8an/bTT1WaKUBULy1VmylU9KdqJgWI/lRJ5U270/TL4Huo+03YBAAAAABpD5VSyPAUQKlKR/Q0N4UlaoQeTNPTtIRTLaWw6IsvvnAVUQqmFHApZFIg9fTTT8f7/oceeshNT1OfJs+8efOsVKlSAUvDhg0TfL3VqlVzQcxjjz3mmr1rauLMmTNt0qRJ1rVr1wQfzwvG9DMhmjZt6q5BweCAAQPcvf3xxx9d7yx/ai6u/c4//3y78sor7dVXX3XTHNesWePW+1PFlqqs/JennnrKt33w4MEx7qGmaQIAAAAA0p4s55LyzHgAyEAUkLmG571nWtZceVN7OGnG1uhWqT0EAAAAAOnwbyvNdolr5gqVUgAAAAAAAIg4QikgjZs+fbpFRUWFXOLrfRVKz549Yz2etgEAAAAAEAlM3wPSODXvDn7KnydHjhxWtmzZBB1PT7ZTKWUoKqssXry4ZVbhlpgCAAAAAJL+txVP3wPSuPz587sluSh0yszBEwAAAAAgbWD6HgAAAAAAACKOUAoAAAAAAAARRygFAAAAAACAiKOnFAAEqTFkvmXNlTfT35et0a0y/T0AAAAAkHKolAIAAAAAAEDEEUoBAAAAAAAg4gilgETIkiWLzZo1K6x9f/75Z6tfv77lzp3bateuzf2OkKlTp1qhQoW43wAAAACQRhFKASlsyJAhli9fPtu8ebMtXLiQ+x1k6NChVqVKFXePChcubE2bNrVvv/02YJ9//vnHOnfubAUKFHBBU/fu3e3o0aPcSwAAAABIxwilgBT222+/WcOGDa1s2bJWtGjRkPucPn06034OlStXtgkTJtj69ett2bJlVq5cOWvWrJnt27fPt48CqQ0bNtiXX35pc+fOta+//truvffeVB03AAAAACBpCKUQEfPmzXPBjKpcFMzceOONLqyRrVu3uulwM2bMsAYNGrhpbjVq1LAlS5b43n/gwAEXTBQrVszy5MljlSpVsilTpoR17j///NNuu+02K1KkiKvGueyyywIqcV555RWrUKGC5cyZ0y6++GKbNm1awPu3bNlijRo1cuOqVq2aC0bCpev64YcfbNiwYe53VQV51/vee+/ZNddc4447ffp0t/+kSZOsatWqbp2qh15++eWA461atcrq1Knjtus6Pv74Y3estWvXxjuWxYsXu33nz5/vjqH7eN1119nevXvt888/d+dVJdLtt99ux48fD+uzk7feesuioqLcffI88MADbvz+x4mNzqfqqIsuusiqV69uo0ePtsOHD9uPP/7otm/atMmNQffmiiuucGMZP368+7789ddfAdP1LrzwQsubN6+1bdvW9u/fH++5AQAAAACpJ3sqnhuZyLFjx6xPnz52ySWXuGlXgwcPdsGBf5jSt29fGzt2rAt+FEy0bt3a/vjjDxeEPPnkk7Zx40YXnpx33nn266+/2okTJ+I9r86l4Of888+32bNnW8mSJW316tV29uxZt12hTq9evdx5FYyoCueuu+6yCy64wK699lq33y233GIlSpRwQdahQ4esd+/eYV/3rl273HFbtGhhjz/+uAtv/v77b7dtwIAB9sILL/hCJgVTui+qGtK6NWvWWI8ePVyQduedd7prUSB0/fXX29tvv+3ujcaeUArGdA6FNx07dnRLrly57J133nHn0Oei0Kd///7xfnZZs2a1O+64w903hYbffPONC70UIK1YscKdIyFOnTplr732mhUsWNBq1arl1uk4CsQUwnl0T3VufSYai35qSt/IkSOtTZs2LsTStMn4nDx50i0ehWEAAAAAgMgglEJEtGvXLuD1G2+84aqeFDQpqJGHHnrIt5+qlxQsTJ482fr162fbt293QY0XTGiKVzgUtGga2HfffecqpaRixYq+7c8//7x169bNVfaIwpeVK1e69QqlFixY4BqVK2gpXbq022fEiBHWsmXLsM6vECx79uzuGvW7eKGUwi0FXh6FKAqpvHXly5d39+fVV191oZSuRSGZ7olCLFUVqQrs/vvvt4QYPny4XXXVVe53BTkDBw50lU+qVJL27dvbokWLfKFUXJ+dKtpEY1Ro9cgjj9hHH33kgq+6deuGPSaFWrfeequrrCpVqpSrRlP4KLt377bixYsH7K97qs9T2+TFF190wZ++K96UQAVk+g7FRSHWU089FfY4AQAAAADJh+l7iAhN7dIUOgUfmiLmhUoKmzxXXnllQOigAEpTt0TBi6Zr6el1Ch4UOIRD1TwKs7xAKpiO7wU0Hr32zqufZcqU8QVSweNMCv/KH1UjKRhSSKQAy1sUIHlT5TQWBT8KpJIyFh3DowowVTN5gZS3TlP6EvLZqUG5wjJvKqSqwBJCAaA+K32uCpdUveU/hvjo3mhqn79w7o0COVW/ecuOHTsSNG4AAAAAQOJRKYWI0FQ8Nfp+/fXXXcCjih9V2Wi6VjhUmbRt2zb77LPPXBVNkyZN7MEHH3QVTXFR36S0StPyPN6T5HR/gsOVbNmyJet5c+TI4ftdPab8X3vrvOmNCfns1HxcY9WURYVs+fPnT9C9UAWblvr167ueYQq5FBqpwiw4oPrvv//cE/m86rPE0rRFLQAAAACAyKNSCilODac3b95sgwYNcmGSGmqrcXkwTZvzDx3UIFz7ejRlTNPY1E9JPaDUeyicqiBV4CjACEXHX758ecA6vVZfK2+7qmcUtIQaZ3JRdZICn99//90XzniLpvF5Y1Hz73///TdFx5KYz04VTs8++6zNmTPHVXhpKmZSKPjyej2p4ungwYPu++D56quv3D5egKdx+Tevj8S9AQAAAAAkDZVSSHGa2qVm5QqR1C9I075CTe966aWXXIWMAoYxY8a48OPuu+9229RcWz2K1EdJYYV6EPkHVrHRtDP1gFLza/UP0vnVQFwBkMIONVfXVDFN8VPzbIUq6omkXlKidepPpDBs1KhRrhH2//73vxS4S+Z6G6knk5p8awqbrvP7779390G9rvSUOp1bzc9VQaSn+MVXKRaJz+7IkSPWtWtXN3ZVtKlJ/OWXX+4qrNSfKi6qqHrmmWfspptucsdXvy19D3bu3GkdOnRw++hz1v3QdU+cONFOnz7tQi/1oPKmVercmnap+3HzzTe7HmDx9ZMCAAAAAKQuKqWQ8l+yrFldPyhVumja16OPPuoCnmDR0dFu0VPXli1b5p6W5zW7zpkzpwtiVPnUqFEjN01Mx4yP3vfFF1+4Rtk33HCD1axZ053DmxKnsEpNshVmKPBSw+4pU6ZY48aNfWPXE/r0pL969erZPffc40KUlKBj66l1Or/GqacGTp061VcppQokhWbr1693IZoCKlUnpfZnpycAavqdwj/R2PX7fffd58KluOhzUCN5NVNX+KcgS9VZS5cudZ+HR08mrFKliqvW0ufYsGHDgEo5TfnT9EJ9lvr+6DNXdRcAAAAAIO3Kcu7cuXOpPQhkbqr4UfCiCiY1Mgf3LrWoEk6VamV6z7SsufJm+q/i1uhWmf4eAAAAAEj831Z6oJQemBUbKqUAAAAAAAAQcYRSSNc0TUzT2kIt6m+U0c/vr2fPnrGORdtSg6bhxTYmLQAAAACAzIvpe0jX9FS92J6slydPHjv//PMz9Pn97d2715VIhqJySfXVijT14oqrr5SeLpgeS0wBAAAAAEn/24pQCgAS+B9OAAAAAEDs6CkFAAAAAACANIueUgAAAAAAAIi47JE/JQCkbTWGzLesufJaZrc1ulVqDwEAAABABkalFAAAAAAAACKOUAoAAAAAAAARRygFIN1r3Lix9e7dO7WHAQAAAABIAEIpIAMqV66cjR071jKLjz76yJ5++ulMe/0AAAAAkB7R6BxAijl9+rTlyJEjxe9wkSJFUvwcAAAAAIDkRaUUMrV58+ZZw4YNrVChQla0aFG78cYb7bfffnPbGjRoYP379w/Yf9++fS5k+frrr93rXbt2WatWrSxPnjxWvnx5e+eddxJUpTN69GirWbOm5cuXz8qUKWMPPPCAHT161Ld96tSpbmxz5861iy++2PLmzWvt27e348eP25tvvunOVbhwYXvkkUfszJkzvqls27Zts0cffdSyZMnilvh455k1a5ZVqlTJcufObc2bN7cdO3YE7PfJJ5/YpZde6rZfdNFF9tRTT9l///3n265zvfLKK3bTTTe5a3rmmWfCOq8/jcF/zEOHDrXatWvbtGnT3PUWLFjQbr31Vjty5EjI6XuJuX4AAAAAQOQRSiFTO3bsmPXp08e+//57W7hwoWXNmtXatm1rZ8+etc6dO9uMGTPs3Llzvv3fe+89K126tF199dXu9R133GF//fWXLV682D788EN77bXXbO/evWGfX+cbN26cbdiwwYVMX331lfXr1y9gHwVQ2kdjUYimc2mMn332mVsU1rz66qv2wQcf+KayXXDBBTZs2DAXmmkJh86jEOmtt96y5cuX28GDB13441m6dKm73l69etnGjRvdORUqBQdPCpE0vvXr19vdd99tyUFBocIqhXNalixZYtHR0SH3Tcj1nzx50g4fPhywAAAAAAAig+l7yNTatWsX8PqNN96wYsWKudClY8eOrvpm2bJlvhBKlVC33Xabq775+eefbcGCBfbdd9/ZZZdd5rZPmjTJVRqFy785t6qAhg8fbj179rSXX345YAqcqo8qVKjgXqtSSkHUnj17LCoqyqpVq2bXXnutLVq0yDp16uSmsmXLls3y589vJUuWDHssOs+ECRPsiiuucK8VklWtWtVWrVpl9erVc1VRAwYMsDvvvNNtV6WU+jgpRBsyZIjvOLfffrvdddddlpwUEioA0zVJ165dXYgYqhIrIdc/cuRId10AAAAAgMijUgqZ2pYtW1zIpIClQIECLhiS7du3u3CqWbNmNn36dLfujz/+sBUrVrgKKtm8ebNlz57dTWfzVKxY0U2nC5dCrSZNmtj555/vQhSFLfv373dVSx5N2fMCKSlRooQbpwIp/3UJqdAKRddy+eWX+15XqVLFTa3btGmTe71u3TpXfaTzekuPHj1cJZL/eL2ALjnper1ASkqVKpXk65WBAwfaoUOHfEvwdEUAAAAAQMohlEKm1rp1a/vnn3/s9ddft2+//dYtcurUKfdTAZSmxamKSFVS6v+kJTls3brV9bC65JJL3NS/H374wV566aWA80two3BVaYVap2qilKReV6oqWrt2rW/RFD0Fe+ox5VEvqYRMX/SfHim618FS6npz5crlwkj/BQAAAAAQGYRSyLRUkaRqp0GDBrlqJU1VO3DgQMA+N998s/3777+ul5NCKa9KStR4XE2+16xZ41v366+/xjhGbBRCKVh54YUXrH79+la5cmXXnyo55MyZ09f4PFy6FvXW8ujeqK+U7ouoIkzrVA0WvChcSgxVo6lhuXp7eRR2pcb1AwAAAAAii1AKmZam2emJe2pOrjBJTcbV9Nyfqn7atGljTz75pJvGpql+/tPbmjZtavfee6/ru6RwSr/rSXzhPPFNYY6qgsaPH2+///676xM1ceLEZJvupicE7ty50/7++++w3qNqpIcffthViykw69atmwvL1E9KBg8e7Jqgq1pKjdl1P9R8XaFeYql/laYnPvHEE66ZuYI/9Y5KjesHAAAAAEQWoRQyLVX3KFRRAFOjRg179NFHbdSoUTH2U3WU+imp2fmFF14YsE0hjfo5NWrUyD1xTj2W1PvIfzpbbGrVqmWjR4+2Z5991p1fvavUeDs5qPeTpgeqF5WqkcKhcKh///6uUflVV13lekbpaYOe5s2buyffffHFF673lAKrMWPGWNmyZRM9TjUlf/vtt91TBDUt8t1333VP70uN6wcAAAAARFaWc8ENXQAk2p9//mllypTxNTBPL1SdpCcBarpeZnb48GErWLCglek907LmymuZ3dboVqk9BAAAAADp+G8rPVAqrt692SM6KiCD0ZQ/NQBXlY+eQtevXz83dUyVUwAAAAAAIHZM3wOSQD2h1A+pevXqbvqepootXrzY9WfSdDxNgQu1aP9IatmyZaxjGTFiRIqdt2fPnrGeV9sAAAAAAJkX0/eAFKKnyu3ZsyfkNoVWSenFlFBq+H3ixIlY+zppSQl79+51ZZuhqISzePHilh5LTAEAAAAAsWP6HpDK1PBcS1pw/vnnp8p5FTqlteAJAAAAAJA2MH0PAAAAAAAAEUcoBQAAAAAAgIjj6XsAEKTGkPmWNVfeTHdftka3Su0hAAAAAMhEqJQCAAAAAABAxBFKAQAAAAAAIOIIpQAAAAAAABBxhFKIuG7dulmWLFksOjo6YP2sWbPc+mBVqlSxXLly2e7du93rxYsXu/3iWrTP0KFDrXbt2jGOt3XrVrfP2rVrQx6vWLFidsMNN9j69etDjjt4adGiRVjXXa5cORs7dqzv9bp16+ymm26y4sWLW+7cud32Tp062d69e+M9VvA1hPLNN9+46yhcuLA7fs2aNW306NF25swZ3z7169e3nj17Brxv4sSJ7thTp06Ncf1XX311vGML9356mjdvbtmyZbPvvvsu0d8V75wHDx70rfvrr7/cNTdq1MgOHToU77gBAAAAAJFFKIVUoZDk2WeftQMHDsS537Jly+zEiRPWvn17e/PNN926Bg0a2K5du3xLx44dXTDkv077JNTmzZvde+fPn28nT560Vq1a2alTpwL2CT6PlnfffTfB59q3b581adLEihQp4s63adMmmzJlipUuXdqOHTtmSfXxxx/bNddcYxdccIEtWrTIfv75Z+vVq5cNHz7cbr31Vjt37pzb79prr3WBjj/tX6ZMmRjr9fq6665L1vu5fft2F5499NBD9sYbbyTpu+Lvt99+s4YNG1rZsmXd+QsWLBj2ewEAAAAAkUEohVTRtGlTK1mypI0cOTLO/SZPnmy33367de3a1Rda5MyZ073XW/LkyeMqqfzXaZ+EUsWS3nvppZda7969bceOHS7M8Rd8Hi2qREqo5cuXu+qdSZMmWZ06dax8+fIuIBozZoz7PSkUavXo0cNVYb322muuWkxVWPfcc48L9j744AObOXOm21fnVHjkVaHJkiVLbMCAAQGh1B9//GHbtm1z+yfn/VQQd+ONN9r999/vwj0FkIn9rnh+/PFHF0hdeeWVrqJK3w8AAAAAQNpDKIVUoelaI0aMsPHjx9uff/4Zcp8jR47Y+++/b126dLHrr7/ehThLly5N8bHpPDNmzHC/JybcCodClv/++89VNHlVS8nliy++sP3799vjjz8eY1vr1q2tcuXKvuquq666ynLkyOGqo2Tjxo0uGOrevbs7hsIo0XZVLCnoSa77qetWKKXPV1M0K1as6AKzxHxXPKq6UoVYu3bt7O2337bs2bMneLwAAAAAgMgglEKqadu2raviGTJkSMjtCjIqVapk1atXd8GEpp2pciqlaKpbVFSUFSpUyN555x1XaaSwxN/cuXPdPv6LApOEUi+nJ554wlWBnXfeedayZUsbNWqU7dmzJ8nX8csvv7ifVatWDbld1+Ttky9fPqtXr56vKko/VWWkijBNgfRfr0BK65Prfi5YsMCOHz/uekqJwqnYPt/4viv++yl4mzBhQsj+ZME0rfDw4cMBCwAAAAAgMgilkKrUK0hTytRTKZim6ymo8Oh3VU6pgiolqArrhx9+cA2+VU2kht/BNH1NzcX9l+BG4eF65pln3LQ5nUfBm34qtImtIXhChVuB1bhx44DwSa9FFUf+6xMydS+c+6nPV43dvWqm2267zU1rVD+ohH5XPDfffLOrPgu3ok5TAtVvylvUSwsAAAAAEBmEUkhVejKaKmUGDhwYsF7TyFauXGn9+vVzoYUWVRepssabChafAgUKhHzqmveEtuDm1+rldPHFF9udd97p+i8pMAmmyiJNM/Nf1Kw8sYoWLWodOnSw559/3oUtanSu35NCAZDEFt5ovbePKGxS5dTOnTtd+KQwyj+UUkikflAJaXIe3/38559/XHj08ssv+z7f888/301pjK3heWzfFX+vvvqqq6hT5dnXX38d7xh1LH1HvEXXCQAAAACIDEIppLro6GibM2eOrVixwrdO07gUQqxbty6gKqlPnz5hT+FTIKIeRMFT4lavXu36I1144YWxvvfBBx+0n376yQUnkaJ+SxUqVEjy0/eaNWvmgrIXXnghxrbZs2fbli1bXFWSR9P0dG4FRP/++6/VrVvXrb/88svdUwIVEnnT/BIr+H5Onz7dTe8L/nw1ZlVWnTlzJuzvij9N2VNz986dO9sNN9zgmrbHRdMRFV76LwAAAACAyKALMFJdzZo1XYgwbtw49/r06dM2bdo0GzZsmNWoUSNgX1XcjB492jZs2OCmvMVFVTUKphTADB8+3DUXVyA1aNAg69Wrl+tTFZu8efO6J9iph1GbNm18/YnUg8j/SXWiKh/1hUoI9aZSxZeqelS1pKl2Cls+++wz1/w7XHpyXjDdF69i6N5777WHHnrIhS0LFy60vn37Wvv27a1jx46+/fV0OlWhqZG4Gp9790VBlf96NURPrOD7qWBR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rlKkcOHCbhrc66+/bseOHbO77rrL8ufPbxUrVrTPP/884H3Lly+3Sy65xHLnzm3169e3n376KaxKHR3z0KFDvsoSTWmScuXK2dNPP2133HGHFShQwO69915fVdX8+fOtatWqFhUV5cIAVUSJ3tu6dWv3e9asWUOGUnPnznXHOHPmjHu9du1at9+AAQN8+9xzzz3WpUuXeMe/f/9+u+222+z888+3vHnzWs2aNe3dd99Nlvu5ZMkSq1evnuXKlctKlSrlxvfff//5tuv+jB07NuA9mgrm3T/RdU2aNMnatm3rxlepUiWbPXu227Z161a79tpr3e8al/ZVkBKfxFyP7nX37t2tfPnylidPHrv44ovtxRdf9G1XeFO9enX3GfuHizrWG2+8YQml9yqU1Nj0Hbn88sttwYIFAfu8/PLL7n7o+6r92rdv79brHujea3zed1L3Ki66ppIlS/qWbNmy2VdffeWu2V90dLQ7l65L23TdAAAAAIC0i1AqFbz55pt23nnn2apVq1wAcf/991uHDh2sQYMGtnr1amvWrJl17drVjh8/7ntP37597YUXXrDvvvvOihUr5sKh06dPx3keHU/BikInBUtaHn/8cd/2559/3mrVqmVr1qyxJ5980q3TObV+2rRp9vXXX9v27dt979HPKVOmuN+94wW7+uqr7ciRI+6YogBC16qAzKN1Cl/io1Chbt269umnn7oQTqGK7ovuW1Lu586dO+2GG25wYcq6devslVdescmTJ9vw4cMtoTSVsWPHjvbjjz+6Y3bu3Nn++ecfK1OmjH344Ydun82bN7t75R8UxSWh13P27Fm74IIL7P3337eNGzfa4MGD7YknnrCZM2e67QqGpk+f7o77ySefuBBLoeD1119vd999d4Kv+ejRo+5aFy5c6D5nBZf6Puq7It9//7098sgjNmzYMHft8+bNs0aNGrltugdXXnml9ejRw/cd0r1KiLfeesuFgF7QJbpWBYYjRoxw51fQqGAsPidPnrTDhw8HLAAAAACAyCCUSgUKggYNGuQqSQYOHOhCA4UQ+kNd6xQqqEpIQYdnyJAhLkRQtZDChT179tjHH38c53k0Ha9gwYKuGsWrMlFli+e6666zxx57zCpUqOAWUdA1ceJEu+yyy+zSSy+1hx56yIUPovd6/am84wXT+VRR5IVQ+vnoo4+68EJhhgKh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Xbq03X333bZ9+/aQ+48cOdKNddSoUSGv3buX/g4ePBjWvQMAAAAApB4anSPTmzx5sj388MPu519//eVCElm4cKF16tTJnnnmGbvppptcyLFx40b78ssvfffsqaeesldffdUmTJhgl112mR0+fNi+//57O3DgQMB9VWgyZcqUgHW5cuWyfPny2a5du3zrevXq5Y7hv6+CruSk0GnGjBnWr18/e+ONN6xDhw4B23v27GnffvutjR8/3qpVq2b79++3b775xv1MKgVSCvkURk2cONGFfFu3brVBgwbZ5Zdf7gLCiy66KOA9GqM31r59+8Y4Zvbs2W3BggW2aNEiu/baa5M8RgAAAABAZBBKIVM7evSovffeey5I2r17t6u8eeKJJ9y2OXPm2FVXXRUQhFSuXNnatGnjez179mx74IEHAoKdWrVqxTiPAqiSJUuGHIP/elVbnTx5MtZ9k4OqoxQ2DRgwwAVwO3bssDJlygRc04svvmg33HCDe12uXDmrW7duspz7f//7nwv+fv31V981XnjhhTZ//nyrVKmSPfjgg/b555/79l+yZImdOHHChg0bZm+99ZYLxxo0aBBwTAV7HTt2dNejMA0AAAAAkD4wfQ+Z2syZM93Uu4svvti6dOniqnHOnTvntik02bBhg/3000+xvl/7fPXVV7Zv3z5LL1QRpmvVlMSWLVu6IC74mj777DM7cuRIsp737NmzrkKrc+fOMUI3hXEK9xROqZrKf6y33Xab5ciRw/3U61CGDh1q69evtw8++CBBY1IAqMo0/wUAAAAAEBmEUsjUvIDGm2J36NAhV50jmtKnKWU1a9Z01UK33nqrC60UZHhGjx7tAimFLJdccomb+uZf6eOZO3euRUVFBSwjRoxItuvQuIOPryXYli1bbOXKlW5aoujaNVXQC+LktddecxVJRYsWddf/6KOP2vLly5M8Rt0n9XqqWrVqyO1ar3GoikoUEClk8j4f/VSIqOq2YKr40tRHVWL9999/YY9J/aoUznmLf8UYAAAAACBlEUoh09q8ebOtWrXKVeB4vYkU1njVOJoW9umnn7qQRD2PFPI89thjVq9ePdeXSTQNTpVUCnrUrHvv3r3WunVru+eeewLOpV5Ha9euDVgUYCUXNWEPPr6WYArVmjdvbuedd557rSl6CrRU7eVp1KiR/f77766nVvv27V212NVXX21PP/10sozVPwCLy7vvvuuarXvTIWvXru2ao2u6ZSj9+/d3wZeuMVxq6K7r9xZNZQQAAAAARAY9pZBpKXxSVY3X2NwLTNT/SY3LVTkjCka0KGhSJY76SikYueuuu9z2rFmzuooiLXqq3Ntvv21du3Z1+5YvX94XcFWsWDHFrkVjiO/4elLgm2++6XpnKYDzX68gp0mTJr51mi6nIEqLwp7hw4e7vk76XU3KE0NP8dNTAjdt2hRyu9armbx3Hfp8FIj5j1VTADXW7t27x3i/jq2QSc3nb7zxxrDGpM9aCwAAAAAg8gilkCkpjFLj7BdeeMGaNWsWsE2NzFWlE6qSSdP48ubNa8eOHYv12Kqekrj2SQ1en6g1a9ZYtmzZfOtV6aWATVPrFOzEdk26Z//++2+iQykFZ2pIPn36dBdw+feVUjPzl19+2VVx6WmD6g+l5vOLFy8OePqg+k01btzYfv75Z9cLLJimXI4bN841agcAAAAApG2EUsiU1OPpwIEDruLGq4jytGvXzlXpqKJI0/Q0xU3TxhTaKPA4ffq0XX/99W5fTW/TE/r0RDiFLH/88Yer1lE1lX9ooj5UOp4/VQB50+giQdfUqlWrGE8HVOCkvlEKi/T0O4U+mtJ42WWXub5SGzdudE8k1BTEAgUKhHUuTaMLnj5YqlQp10dL0wJ1/5577jmrUaOGu2eaHqn7+tJLL/nGqmmSmkoYTBVp2j5q1KgY23Lnzu0qpXQdAAAAAIC0jZ5SyJQUajRt2jRGIOWFUqrSKVy4sOutdMcdd7iASU+qU7D0xRdfuKf1iSp75syZ4/pIKYi688473b7ax3/a2bx581wo4780bNgwYte7Z88e1x9L1xaqgqlt27a+Xlq6Jk3zUwWZmo+r+kjr1GQ8XO+8847VqVMnYHn99dddyKX+Wwq47rvvPjctUtVT+vndd9/ZRRddZKdOnXJTIEONVbReVW4KsULRZ6DjAAAAAADStiznwu06DAAZnJ74557C13umZc2V1zKSrdGtUnsIAAAAADLZ31aHDh2Kc8YNlVIAAAAAAACIOEIpII2rXr26RUVFhVzUByqSli5dGutYtAAAAAAAEC6m7wFp3LZt22Ltn1SiRAnLnz9/xMaip+Tt3Lkz1u0VK1a0zFBiCgAAADFRxMsAABLCSURBVABI+t9WPH0PSOP05L+0Ik+ePOk+eAIAAAAApA1M3wMAAAAAAEDEEUoBAAAAAAAg4pi+BwBBagyZb1lz5c0Q92VrdKvUHgIAAAAAhESlFAAAAAAAACKOUAoAAAAAAAARRygFJMLixYstS5YsdvDgwVS7f0OHDrXatWv7Xnfr1s3atGnje33u3Dm79957rUiRIm6sa9euDbkurWjcuLH17t3b97pcuXI2duzYVB0TAAAAACDl0FMKmY7CD4U5GS3wePHFF13o5Jk3b55NnTrVBWgXXXSRnXfeeSHXpVXfffed5cuXL7WHAQAAAABIIYRSQAZRsGDBgNe//fablSpVyho0aBDnurSqWLFiqT0EAAAAAEAKYvoe0hRV8jRs2NAKFSpkRYsWtRtvvNEFKZ5vvvnGVTnlzp3bLrvsMps1a1aMaWg//fSTtWzZ0qKioqxEiRLWtWtX+/vvv31T3JYsWeKqivQ+LVu3bo13XJ999plVrlzZ8uTJY9dee22M9+zfv99uu+02O//88y1v3rxWs2ZNe/fdd33b33rrLXc9J0+eDHifpttpfOGIjo5215M/f37r3r27/fvvvwHb/afv6feHH37Ytm/f7q5RU+FCrQunqkzv0bS6woULu/O//vrrduzYMbvrrrvcWCpWrGiff/55wPvi+gxE77/jjjvcdoVkL7zwQoxzB0/fGz16tLuvqp4qU6aMPfDAA3b06FHfdlWA6Xszf/58q1q1qjt2ixYtbNeuXWHdXwAAAABAZBFKIU1RWNGnTx/7/vvvbeHChZY1a1Zr27atnT171g4fPmytW7d2wcTq1avt6aeftv79+we8Xz2errvuOqtTp447hkKuPXv2WMeOHd12hVFXXnml9ejRw4UVWhRwxGXHjh12yy23uHMr/LrnnntswIABAfsoIKpbt659+umnLpBR3yYFMatWrXLbO3ToYGfOnLHZs2f73rN37163/9133x3vfZk5c6brITVixAh3XQpyXn755Vj313UOGzbMLrjgAneNmgoXal043nzzTTfNT9eigOr+++9316NqK30OzZo1c9d6/PjxsD4D6du3rwsHP/nkE/viiy/cdEIdKy76LowbN842bNjgxvTVV19Zv379AvbRGJ5//nmbNm2aff311y6Ae/zxx2M9pkJCfa/8FwAAAABAZDB9D2lKu3btAl6/8cYbbhrXxo0bbdmyZa7CR5U6qpSqVq2a7dy5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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                    feature  importance\n",
      "153           NATURE_IS_OLD   91.018800\n",
      "211     TPAY_WX_SEAN_TR_CNT   29.051760\n",
      "61        AST_SAVER_AUM_BAL   24.490338\n",
      "159           NTRL_CUST_AGE   23.531229\n",
      "145  NATURE_AGE_BY_RANK_STD   23.154003\n",
      "63        AST_YAVER_AUM_BAL   21.557092\n",
      "204     TPAY_WX_MOTH_TR_CNT   17.293188\n",
      "23      ASSET_DAY_TD_DIV_DP   16.357995\n",
      "431    aps_top1_cod_cnt_60d   13.895154\n",
      "751         month_amt_min_x   13.460114\n"
     ]
    }
   ],
   "source": [
    "def plot_feature_importance(importance_df, top_n=30, title=\"特征重要性\"):\n",
    "    \"\"\"\n",
    "    绘制特征重要性图\n",
    "    \n",
    "    参数:\n",
    "    - importance_df: 特征重要性DataFrame\n",
    "    - top_n: 显示前N个重要特征\n",
    "    - title: 图表标题\n",
    "    \"\"\"\n",
    "    # 计算平均重要性\n",
    "    avg_importance = importance_df.groupby('feature')['importance'].mean().reset_index()\n",
    "    avg_importance = avg_importance.sort_values('importance', ascending=False).head(top_n)\n",
    "    \n",
    "    plt.figure(figsize=(12, 8))\n",
    "    plt.barh(range(len(avg_importance)), avg_importance['importance'].values)\n",
    "    plt.yticks(range(len(avg_importance)), avg_importance['feature'].values)\n",
    "    plt.xlabel('重要性', fontsize=12)\n",
    "    plt.ylabel('特征', fontsize=12)\n",
    "    plt.title(title, fontsize=14, fontweight='bold')\n",
    "    plt.gca().invert_yaxis()\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "    \n",
    "    return avg_importance\n",
    "\n",
    "# 绘制各模型的特征重要性\n",
    "print(\"LightGBM特征重要性 (Top 30):\")\n",
    "lgb_importance = plot_feature_importance(\n",
    "    lgb_results['feature_importance'], \n",
    "    top_n=30, \n",
    "    title=\"LightGBM 特征重要性 Top 30\"\n",
    ")\n",
    "print(lgb_importance.head(10))\n",
    "\n",
    "print(\"\\n\" + \"=\"*80 + \"\\n\")\n",
    "\n",
    "print(\"CatBoost特征重要性 (Top 30):\")\n",
    "cat_importance = plot_feature_importance(\n",
    "    cat_results['feature_importance'], \n",
    "    top_n=30, \n",
    "    title=\"CatBoost 特征重要性 Top 30\"\n",
    ")\n",
    "print(cat_importance.head(10))\n",
    "\n",
    "print(\"\\n\" + \"=\"*80 + \"\\n\")\n",
    "\n",
    "print(\"XGBoost特征重要性 (Top 30):\")\n",
    "xgb_importance = plot_feature_importance(\n",
    "    xgb_results['feature_importance'], \n",
    "    top_n=30, \n",
    "    title=\"XGBoost 特征重要性 Top 30\"\n",
    ")\n",
    "print(xgb_importance.head(10))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8ddb669",
   "metadata": {},
   "source": [
    "# 7. 模型优化\n",
    "\n",
    "## 7.1 参数网格搜索优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "36ca4e8a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "参数优化函数定义完成（需要时可取消注释执行）\n"
     ]
    }
   ],
   "source": [
    "def optimize_lgb_params(X, y, base_params, param_grid, n_splits=5):\n",
    "    \"\"\"\n",
    "    LightGBM参数优化\n",
    "    \n",
    "    参数:\n",
    "    - X: 特征矩阵\n",
    "    - y: 标签\n",
    "    - base_params: 基础参数\n",
    "    - param_grid: 参数网格\n",
    "    - n_splits: 交叉验证折数\n",
    "    \n",
    "    返回:\n",
    "    - best_params: 最佳参数\n",
    "    - best_score: 最佳得分\n",
    "    \"\"\"\n",
    "    print(\"开始LightGBM参数优化...\")\n",
    "    print(f\"参数网格: {param_grid}\")\n",
    "    \n",
    "    best_score = -np.inf\n",
    "    best_params = None\n",
    "    \n",
    "    from itertools import product\n",
    "    \n",
    "    # 生成参数组合\n",
    "    param_names = list(param_grid.keys())\n",
    "    param_values = list(param_grid.values())\n",
    "    \n",
    "    for values in product(*param_values):\n",
    "        current_params = base_params.copy()\n",
    "        current_params.update(dict(zip(param_names, values)))\n",
    "        \n",
    "        print(f\"\\n测试参数: {dict(zip(param_names, values))}\")\n",
    "        \n",
    "        # 交叉验证\n",
    "        skf = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=2024)\n",
    "        scores = []\n",
    "        \n",
    "        for fold, (train_idx, valid_idx) in enumerate(skf.split(X, y)):\n",
    "            X_train, X_valid = X.iloc[train_idx], X.iloc[valid_idx]\n",
    "            y_train, y_valid = y.iloc[train_idx], y.iloc[valid_idx]\n",
    "            \n",
    "            model, _ = train_lightgbm(X_train, y_train, X_valid, y_valid, current_params)\n",
    "            \n",
    "            valid_pred = model.predict(X_valid)\n",
    "            valid_labels = np.argmax(valid_pred, axis=1)\n",
    "            score = macro_f1_score(y_valid, valid_labels)\n",
    "            scores.append(score)\n",
    "        \n",
    "        avg_score = np.mean(scores)\n",
    "        print(f\"平均得分: {avg_score:.6f} ± {np.std(scores):.6f}\")\n",
    "        \n",
    "        if avg_score > best_score:\n",
    "            best_score = avg_score\n",
    "            best_params = dict(zip(param_names, values))\n",
    "    \n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(\"参数优化完成\")\n",
    "    print(f\"最佳参数: {best_params}\")\n",
    "    print(f\"最佳得分: {best_score:.6f}\")\n",
    "    print(f\"{'='*80}\")\n",
    "    \n",
    "    return best_params, best_score\n",
    "\n",
    "# 示例：LightGBM参数优化（可选执行）\n",
    "# 定义参数网格\n",
    "lgb_param_grid = {\n",
    "    'num_leaves': [31, 63, 127],\n",
    "    'learning_rate': [0.01, 0.03, 0.05],\n",
    "    'feature_fraction': [0.7, 0.8, 0.9],\n",
    "    'bagging_fraction': [0.7, 0.8, 0.9]\n",
    "}\n",
    "\n",
    "# 注意：参数优化耗时较长，建议在资源充足时执行\n",
    "# best_lgb_params, best_lgb_score = optimize_lgb_params(\n",
    "#     X, y, lgb_params, lgb_param_grid, n_splits=5\n",
    "# )\n",
    "\n",
    "print(\"参数优化函数定义完成（需要时可取消注释执行）\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "046b1d8d",
   "metadata": {},
   "source": [
    "## 7.2 基于特征重要性的迭代优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a002b3ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "迭代特征选择函数定义完成（需要时可取消注释执行）\n"
     ]
    }
   ],
   "source": [
    "def iterative_feature_selection(X, y, model_type='lgb', params=None, \n",
    "                               importance_threshold=0.01, max_iterations=5):\n",
    "    \"\"\"\n",
    "    基于特征重要性的迭代特征选择\n",
    "    \n",
    "    参数:\n",
    "    - X: 特征矩阵\n",
    "    - y: 标签\n",
    "    - model_type: 模型类型\n",
    "    - params: 模型参数\n",
    "    - importance_threshold: 重要性阈值\n",
    "    - max_iterations: 最大迭代次数\n",
    "    \n",
    "    返回:\n",
    "    - selected_features: 选中的特征\n",
    "    - best_score: 最佳得分\n",
    "    \"\"\"\n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(f\"开始迭代特征选择 - 模型: {model_type.upper()}\")\n",
    "    print(f\"{'='*80}\\n\")\n",
    "    \n",
    "    current_features = X.columns.tolist()\n",
    "    best_score = -np.inf\n",
    "    best_features = current_features.copy()\n",
    "    \n",
    "    for iteration in range(max_iterations):\n",
    "        print(f\"\\n迭代 {iteration + 1}/{max_iterations}\")\n",
    "        print(f\"当前特征数: {len(current_features)}\")\n",
    "        \n",
    "        # 训练模型\n",
    "        X_current = X[current_features]\n",
    "        results = cross_validation_train(\n",
    "            X_current, y,\n",
    "            model_type=model_type,\n",
    "            n_splits=5,\n",
    "            params=params,\n",
    "            save_model=False\n",
    "        )\n",
    "        \n",
    "        current_score = results['oof_score']\n",
    "        print(f\"当前得分: {current_score:.6f}\")\n",
    "        \n",
    "        if current_score > best_score:\n",
    "            best_score = current_score\n",
    "            best_features = current_features.copy()\n",
    "            print(f\"得分提升！新最佳得分: {best_score:.6f}\")\n",
    "        else:\n",
    "            print(f\"得分未提升，停止迭代\")\n",
    "            break\n",
    "        \n",
    "        # 计算特征重要性\n",
    "        importance_df = results['feature_importance']\n",
    "        avg_importance = importance_df.groupby('feature')['importance'].mean()\n",
    "        \n",
    "        # 标准化重要性\n",
    "        avg_importance = avg_importance / avg_importance.sum()\n",
    "        \n",
    "        # 删除低重要性特征\n",
    "        low_importance_features = avg_importance[avg_importance < importance_threshold].index.tolist()\n",
    "        \n",
    "        if not low_importance_features:\n",
    "            print(\"没有可删除的低重要性特征，停止迭代\")\n",
    "            break\n",
    "        \n",
    "        print(f\"删除 {len(low_importance_features)} 个低重要性特征\")\n",
    "        current_features = [f for f in current_features if f not in low_importance_features]\n",
    "        \n",
    "        gc.collect()\n",
    "    \n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(\"迭代特征选择完成\")\n",
    "    print(f\"最佳特征数: {len(best_features)}\")\n",
    "    print(f\"最佳得分: {best_score:.6f}\")\n",
    "    print(f\"{'='*80}\")\n",
    "    \n",
    "    return best_features, best_score\n",
    "\n",
    "# 示例：迭代特征选择（可选执行）\n",
    "# best_features, best_feature_score = iterative_feature_selection(\n",
    "#     X, y,\n",
    "#     model_type='lgb',\n",
    "#     params=lgb_params,\n",
    "#     importance_threshold=0.001,\n",
    "#     max_iterations=3\n",
    "# )\n",
    "\n",
    "print(\"迭代特征选择函数定义完成（需要时可取消注释执行）\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "98fecb32",
   "metadata": {},
   "source": [
    "# 8. 模型评估与分析\n",
    "\n",
    "## 8.1 混淆矩阵可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "42d78703",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "融合模型混淆矩阵:\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "================================================================================\n",
      "融合模型详细分类报告:\n",
      "================================================================================\n",
      "\n",
      "================================================================================\n",
      "融合模型 - 分类报告\n",
      "================================================================================\n",
      "\n",
      "Macro-F1 Score: 0.522716\n",
      "\n",
      "详细分类报告:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0     0.5758    0.3373    0.4254       169\n",
      "           1     0.0000    0.0000    0.0000        73\n",
      "           3     0.8006    0.8537    0.8263      2987\n",
      "           4     0.9097    0.9054    0.9076      1068\n",
      "           6     0.8182    0.3285    0.4688       137\n",
      "           7     0.8605    0.9250    0.8916       280\n",
      "           8     0.6564    0.6680    0.6622      1250\n",
      "           9     0.0000    0.0000    0.0000        11\n",
      "\n",
      "    accuracy                         0.7888      5975\n",
      "   macro avg     0.5776    0.5022    0.5227      5975\n",
      "weighted avg     0.7755    0.7888    0.7784      5975\n",
      "\n",
      "\n",
      "混淆矩阵:\n",
      "[[  57    0   65    3    0    0   44    0]\n",
      " [   2    0   43    2    0    0   26    0]\n",
      " [  26    0 2550   56    7   29  319    0]\n",
      " [   0    0   72  967    1   10   18    0]\n",
      " [   0    0   56    4   45    2   30    0]\n",
      " [   0    0   17    4    0  259    0    0]\n",
      " [  14    0  371   27    2    1  835    0]\n",
      " [   0    0   11    0    0    0    0    0]]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5227162243715572"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def plot_confusion_matrix(y_true, y_pred, title=\"混淆矩阵\"):\n",
    "    \"\"\"\n",
    "    绘制混淆矩阵热力图\n",
    "    \"\"\"\n",
    "    from sklearn.metrics import confusion_matrix\n",
    "    \n",
    "    cm = confusion_matrix(y_true, y_pred)\n",
    "    \n",
    "    plt.figure(figsize=(10, 8))\n",
    "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', cbar=True)\n",
    "    plt.title(title, fontsize=14, fontweight='bold')\n",
    "    plt.xlabel('预测标签', fontsize=12)\n",
    "    plt.ylabel('真实标签', fontsize=12)\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "    \n",
    "    return cm\n",
    "\n",
    "# 绘制融合模型的混淆矩阵\n",
    "print(\"融合模型混淆矩阵:\")\n",
    "cm_ensemble = plot_confusion_matrix(y, ensemble_labels, \"融合模型混淆矩阵\")\n",
    "\n",
    "# 详细分类报告\n",
    "print(\"\\n\" + \"=\"*80)\n",
    "print(\"融合模型详细分类报告:\")\n",
    "print(\"=\"*80)\n",
    "print_classification_metrics(y, ensemble_labels, \"融合模型\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1b9cf51",
   "metadata": {},
   "source": [
    "## 8.2 各类别性能对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "68262105",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "类别 0 F1分数: 0.4254\n",
      "类别 1 F1分数: 0.0000\n",
      "类别 2 F1分数: 0.0000\n",
      "类别 3 F1分数: 0.8263\n",
      "类别 4 F1分数: 0.9076\n",
      "类别 5 F1分数: 0.0000\n",
      "类别 6 F1分数: 0.4688\n",
      "类别 7 F1分数: 0.8916\n",
      "类别 8 F1分数: 0.6622\n",
      "类别 9 F1分数: 0.0000\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAM+NJREFUeJzt3Qucl1WdP/DvAHKLEHIEkkDUVcFUUAlCM9NFyZe5a7WKdoFIrTR2TTZTTBnJC5bp4hZqWV42Iy/tul00rDBqXelFQla2YJqXUZKbKSBXnZn/6zyv4M/IcBuG83uGeb9fr+cFzzPnmd+Zc+b3/H7z+Z1znqqGhoaGAAAAAICM2uV8MAAAAABIhFIAAAAAZCeUAgAAACA7oRQAAAAA2QmlAAAAAMhOKAUAAABAdkIpAAAAALITSgEAAACQnVAKAAAAgOyEUgAAAABk1yH/QwIA7HqvvvrqNst06NAhunXrFm+88Ua89tpr2yzfuXPnYlu7dm2xbUv63ukxkqqqqm2W33fffeO5557buP/iiy/GbbfdFo899lixvfTSSxu/VlNTE1dcccVm32PFihVRX1+/1cdp165ddO/evSiXym9Lx44do2vXrrF+/fpYvXr1NsunsumcVDadsy2pLqlOAEDbIpQCAHZLPXv23GaZ4447LmbNmhWPPPJIHH/88dssvyEIuvbaa2Py5MnbLP+LX/wi3ve+90VzpSAqPeaOOPzww+P555/frvCrtrY29ttvv21+z7Fjx8Ydd9wR06dPj3Hjxm2z/O233x6f+MQn4vzzz48777xzm+WfffbZGDBgwDbLAQC7Fx9JAQC7rTSyqKGhocntvvvua1T24IMP3mLZtH32s59tVP7Tn/70Vsu/853v3GK9hg4dGtddd91m2xe/+MUmR1sde+yxceGFF273zz179uwt1us3v/lNo7KdOnXa6s+R6rWpUaNGbbX8Kaec0qj8lClTtlr+LW95y3b/XADA7sVIKQCAzFJg9fnPf36b5U4++eRYvnz5xqlt//Zv/5ahdgAAeQilAABKKo1iAgDYXQmlAAAy++Mf/xhf/epXNzt+9NFHFxsAQFsglAIAyGzD3fTeLC1qLpQCANoKC50DAAAAkJ2RUgAAmY0dOzbuuOMO7Q4AtGlGSgEAAACQnVAKAAAAgOxM3wMAKKk///nPcfPNNzf5tZ/+9Kfx2muvFf8/4IAD4rzzzstcOwCAnSOUAgAoqRdeeCGuv/76Jr82e/bsYkuOO+44oRQA0OqYvgcAAABAdkZKAQBk0NDQsMPnvO9972vWeQAArYGRUgAAAABkJ5QCAHZbb3/726OqqqrJ7fTTT29U9sknn9xi2bRNmzatUflvfOMbWy3/xz/+MSplxIgRW6zXu971rkZl161bt9Wf46KLLmpU/qGHHtpq+QceeKBR+YkTJ261/KpVq7K0CQBQPlUNxoQDALuhV199dZtlOnToEN26dYs33nhj453stqZz587Ftnbt2mLblvS902PktGLFiqivr99qmXbt2kX37t2Lcqn8tnTs2DG6du0a69evj9WrV2+zfCqbzkll0znbkuqS6gQAtC2lCqV+9atfxXXXXRdz586Nl156Ke6///447bTTtnrOrFmzYsKECcWnkf369YvLLrssPvGJT2SrMwAAAAA7rlQfSaXh24MHD95sePyWPPvss3HKKafE8ccfH48//nh87nOfi3POOacYVg4AAABAeZVqpNSm0hoD2xopdfHFFxfrFjzxxBMbj5155pnFcP0ZM2ZkqikAAAAAOyrvIgctbPbs2TFy5MhGx0aNGlWMmNqStJhn2jZIayn89a9/jb322qsIwgAAAABovjT+aeXKlbHPPvtsdd3IVh1KLVq0KHr37t3oWNpPC3auWbMmunTpstk5U6ZMicmTJ2esJQAAAEDb88ILL8Q73vGO3TOUao50W+K0MPoGy5cvj/79+8fzzz9f3PkFAAAAgOZLg4X23XffeOtb37rVcq06lOrTp08sXry40bG0n8KlpkZJJZ06dSq2N+vRo4dQCgAAAGAnbZiyt61lkkp1970dNWLEiJg5c2ajYz/72c+K4wAAAACUV6lCqddeey0ef/zxYkueffbZ4v+1tbUbp96NGTNmY/nPfOYz8cwzz8QXvvCFWLBgQdx0001x7733xoUXXlixnwEAAACAVhZKPfbYY3HEEUcUW5LWfkr/nzRpUrH/0ksvbQyokv322y8eeOCBYnTU4MGD4/rrr49vfetbxR34AAAAACivqoZ0n742vvjWnnvuWSx4bqFzAAAAgDxZS6lGSgEAAADQNgilAAAAAMhOKAUAAABAdkIpAAAAALITSgEAAACQnVAKAAAAgOyEUgAAAABkJ5QCAAAAIDuhFAAAAADZCaUA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ykvflJv+KS99U276p7z0TV5phFQa4bjPPvtstVypQqmOHTvGUUcdFTNnzizuoLchNEr748ePb/KcESNGFF//3Oc+t/HYz372s+J4Uzp16lRsm+rRo0eL/hxsWwqkhFLlpX/KS9+Um/4pL31TXvqm3PRPeembctM/5aVv8tlzzz23WaZUoVSSRjGNHTs2hg4dGsOGDYupU6fGqlWrirvxJWPGjIm+ffvGlClTiv0LLrggjjvuuLj++uvjlFNOibvvvjsee+yx+OY3v1nhnwQAAACAVhNKjR49OpYuXRqTJk0qFoUeMmRIzJgxY+NCX7W1tcUd+TY4+uijY/r06XHZZZfFpZdeGgceeGD893//dxx66KEV/CkAAAAAaFWhVJKm6m1put6sWbM2O3b66acXG+WXpk7W1NRsNoWSctA/5aVvyk3/lJe+KS99U276p7z0Tbnpn/LSN+VUlVY7r3QlAAAAAGhb/v88OAAAAADIRCgFAAAAQHZCKQAAAACyE0qR1bRp02LAgAHRuXPnGD58eMyZM0cPlMCvfvWrOPXUU2OfffaJqqqq4g6WlMOUKVPiXe96V7z1rW+NXr16xWmnnRZPPvlkpatFRNx8881x+OGHR/fu3YttxIgR8ZOf/ETblNC1115bXNs+97nPVboqRMQVV1xR9Mem28CBA7VNSSxcuDA+9rGPxV577RVdunSJww47LB577LFKV4uI4j30m587afvsZz+rfSqsrq4uLr/88thvv/2K580BBxwQV155ZVi+uRxWrlxZvAfYd999i/45+uij4ze/+U2lq8XfCKXI5p577okJEyYUd9+bN29eDB48OEaNGhVLlizRCxW2atWqoj9SaEi5/PKXvyzebP7617+On/3sZ/H666/HSSedVPQZlfWOd7yjCDvmzp1b/MF2wgknxD/+4z/GH//4R11TIulN5ze+8Y0iQKQ83vnOd8ZLL720cXvkkUcqXSUi4pVXXoljjjkm9thjjyJk/7//+7+4/vrro2fPntqnJNezTZ836X1B4i7klfflL3+5+LDq61//esyfP7/Y/8pXvhJf+9rXKl01IuKcc84pni/f+c534g9/+EPxXnrkyJFFCE/lufse2aSRUWnER7pYJ/X19dGvX7/453/+57jkkkv0REmkT9zuv//+YkQO5bN06dJixFQKq9773vdWujq8ydve9ra47rrr4uyzz9Y2JfDaa6/FkUceGTfddFNcddVVMWTIkJg6dWqlq9XmpZFSaUTu448/3ubbomzS+7H//d//jf/5n/+pdFXYDmnkx49//ON46qmnivdvVM4HPvCB6N27d3z729/eeOzDH/5wMSrnrrvu0jUVtGbNmmLGwQ9+8IM45ZRTNh4/6qij4uSTTy7eH1BZRkqRxfr164vRBCmR3vjL165dsT979my9ANtp+fLlG8MPyjVs/+677y5GsKVpfJRDGmWY3oBu+tpDOaQ/otOU8f333z8++tGPRm1tbaWrRET88Ic/jKFDhxYjb9IHIEcccUTceuut2qak761T2PHJT35SIFUCaTrYzJkz409/+lOx/7vf/a4YAZpCDyrrjTfeKN6npeVjNpUCQ6N0y6FDpStA27Bs2bLiYpA+QdhU2l+wYEHF6gWtSRpdmD4VTVMrDj300EpXh4hiCHgKodauXRvdunUrRhkecsgh2qYEUkiYpopbM6KcI6fvuOOOOPjgg4spSJMnT45jjz02nnjiieLTbCrnmWeeKaYgpeUWLr300uL58y//8i/RsWPHGDt2rK4pkTTa8NVXX41PfOITla4KfxtluGLFimJ9vPbt2xd/91x99dVF6E5lpdeV9F4trfE1aNCg4u/P733ve8XAiL/7u7/TPSUglAJoRaM+0h9tPtUpj/RHdZqClEawff/73y/+aEtTKwVTlfXCCy/EBRdcUKwf8eZPRqm8TUcOpLW+UkiVFp+99957TX0twYcfaaTUNddcU+ynkVLpdeeWW24RSpVMmiaWnktpxCGVl65f3/3ud2P69OnFmnnpvUH6IDH1j0C38tJaUmlUYd++fYvQME3tP+uss4qZPFSeUIosqquriwvA4sWLGx1P+3369NELsA3jx48v1o1Id0pMC2xTDmn0wIZP2dLaBGlUwY033lgsrE3lpDeZ6SYa6U3nBulT6/T8Sesarlu3rnhNohx69OgRBx10UDz99NOVrkqb9/a3v32zUD2NLPjP//zPNt82ZfL888/Hz3/+8/iv//qvSleFv7nooouK0VJnnnlmsZ/uWpn6Kd1FWShVeeluiOlDw7TMQhrRlq51o0ePLqaQU3nWlCLbH27pD7Y013rTT+PSvvVXYMvSrYRTIJWmhT388MPFrYYpr3RdS4EHlfX3f//3xdTK9En1hi2N/kjTKNL/BVLlW5D+z3/+c/FHApWVpoc/+eSTjY6lNXLSSDbK4/bbby/W/Np00WYqa/Xq1cV6uZtKrzXpfQHl8Za3vKV4rUl3Gn3ooYeKuyZTeUZKkU1anyB9UpD+MBg2bFhxB6SUVo8bN04vlOAPgk0/oX722WeLP9zSYtr9+/evaN3aujRlLw0FT3cMSXPiFy1aVBzfc889iwUaqZyJEycWUyfSc2TlypVFP82aNat4k0NlpefKm9ddS29E99prL+uxlcDnP//5OPXUU4ug4y9/+UvU1NQUf7ylqRRU1oUXXlgs2Jym751xxhkxZ86c+OY3v1lslEMKOVIold5Td+jgT7mySNe0tIZUek+Qpu/99re/jRtuuKGYMkblpfdm6YPetOxC+psnjWxL63/5O7QcXMnIJg2RTLeznzRpUvGHdbo194wZMzZb/Jz8HnvssTj++OMbBYhJesOTFqOlctKCs8n73ve+RsfTG1KLm1ZWmh42ZsyYYqHmFBKmtXHSm54TTzyxwjWDcnvxxReLAOrll1+OvffeO97znvfEr3/96+L/VNa73vWuYmRuCt2/9KUvFaNz04eIFmsujzRtL92tUthRLl/72tfi8ssvj/PPP794f5DWkvr0pz9d/N1D5aW1P9N1Lb3+pA/dP/zhDxch4h577FHpqhERVQ0pMgQAAACAjKwpBQAAAEB2QikAAAAAshNKAQAAAJCdUAoAAACA7IRSAAAAAGQnlAIAAAAgO6EUAAAAANkJpQAAAADITigFAAAAQHZCKQCAZrjjjjuiqqqqye2SSy4pygwYMCA+8IEPbPf3fPDBB4vz99lnn6ivr99iuRUrVsTVV18dQ4cOjT333DM6deoU++67b4wePToeeOAB/QkAtAodKl0BAIDW7Etf+lLst99+jY4deuihzfpe3/3ud4sg67nnnouHH344Ro4cuVmZp59+OkaNGhXPP/98fPCDH4wxY8ZEt27d4oUXXihCrRSC/cd//Ed8/OMfj1WrVkWPHj2K0Kopr7/+evzkJz+J4cOHb1e5E044oVk/FwBAU4RSAAA74eSTTy5GLO2sFCD94Ac/iClTpsTtt99eBFRvDqXeeOONIohavHhx/PKXv4xjjjmm0ddramripz/9adTV1RX7DQ0N0bt373jxxRebfMwzzzyzGJG1veUAAFqSUAoAoATuv//+WLNmTZx++unFv2l63s033xydO3feWOa+++6LJ554Iq699trNAqkNTjrppIy1BgBoPmtKAQDshOXLl8eyZcsabc2RRkYdf/zx0adPn2Jk0sqVK+NHP/pRozIb9j/2sY/pMwCg1TNSCgBgJzS17lOaDrcjlixZEj//+c+LkVFJ//79Y8SIEUVQlUZObbBgwYJi7ae+fftuNvUvja7aoGPHjtG9e/dm/DQAAPkIpQAAdsK0adPioIMO2qk2vPvuu6Ndu3bx4Q9/eOOxs846K/71X/81XnnllejZs+fGu+6lRc3f7Itf/GLceOONG/dPOeWU+PGPf7xTdQIA2NWEUgAAO2HYsGE7vdD5XXfdVXyfl19+udiSI444ItavX1+sI/WpT32qOPbWt75149c3df755xd33UtM7QMAWguhFABABT311FPxm9/8pvj/gQceuNnX0xS+DaHUwIED4/HHH4+FCxc2msKXRmptGK216cLoAABlJpQCAKigFDrtscce8Z3vfCfat2/f6GuPPPJI/Pu//3vU1tYW60yl0VBpql865wtf+ELF6gwA0BKEUgAAFZQCpmOPPTZGjx692dfSYucplPre974XF198cZxxxhlxzTXXxJVXXhnvfe97493vfvdOL7IOAFApQikAgF3o6aefjquuumqz42nNqOrq6uLr48ePb/LcNEXvyCOPLIKrFEqlEVX3339/jBo1Kt7znvfEhz70oSLQestb3lJM6fvhD39YjKpKC50DAJSdUAoAYBd68skn4/LLL9/s+Nlnnx1du3Yt/n/qqadu8fz0tSuuuCJ+//vfx+GHH16sHZXWlUojqFJA9ZOf/KRYEL13794xfPjwqKmp2bjoOQBAmVU1GOMNALBbeu2114rF0V988cUmv37mmWfGOeecU0wD3J5yI0eO3MU1BgDaknaVrgAAAAAAbY/pewAAu7G//OUv0aNHjya/tnr16mIE1I6UAwBoKabvAQAAAJCd6XsAAAAAZCeUAgAAACA7oRQAAAAA2QmlAAAAAMhOKAUAAABAdkIpAAAAALITSgEAAACQnVAKAAAAgOyEUgAAAABkJ5QCAAAAIHL7fwUJkPfIuTHHAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "平均F1分数 (Macro): 0.4182\n"
     ]
    }
   ],
   "source": [
    "# 计算每个类别的F1分数\n",
    "from sklearn.metrics import f1_score\n",
    "\n",
    "class_f1_scores = []\n",
    "for class_label in range(10):\n",
    "    y_true_binary = (y == class_label).astype(int)\n",
    "    y_pred_binary = (ensemble_labels == class_label).astype(int)\n",
    "    f1 = f1_score(y_true_binary, y_pred_binary)\n",
    "    class_f1_scores.append(f1)\n",
    "    print(f\"类别 {class_label} F1分数: {f1:.4f}\")\n",
    "\n",
    "# 可视化\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.bar(range(10), class_f1_scores, color='skyblue', edgecolor='black')\n",
    "plt.xlabel('FLAG类别', fontsize=12)\n",
    "plt.ylabel('F1分数', fontsize=12)\n",
    "plt.title('各类别F1分数对比', fontsize=14, fontweight='bold')\n",
    "plt.xticks(range(10))\n",
    "plt.ylim(0, 1)\n",
    "plt.grid(axis='y', alpha=0.3)\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "print(f\"\\n平均F1分数 (Macro): {np.mean(class_f1_scores):.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a67aa3ca",
   "metadata": {},
   "source": [
    "# 9. 结果保存\n",
    "\n",
    "## 9.1 保存训练结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "087bd4db",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 保存所有训练结果\n",
    "results_summary = {\n",
    "    'training_date': time.strftime('%Y-%m-%d %H:%M:%S'),\n",
    "    'n_samples': len(X),\n",
    "    'n_features': len(feature_columns),\n",
    "    'n_classes': 10,\n",
    "    \n",
    "    'lightgbm': {\n",
    "        'oof_score': lgb_results['oof_score'],\n",
    "        'fold_scores': lgb_results['fold_scores'],\n",
    "        'params': lgb_params\n",
    "    },\n",
    "    \n",
    "    'catboost': {\n",
    "        'oof_score': cat_results['oof_score'],\n",
    "        'fold_scores': cat_results['fold_scores'],\n",
    "        'params': cat_params\n",
    "    },\n",
    "    \n",
    "    'xgboost': {\n",
    "        'oof_score': xgb_results['oof_score'],\n",
    "        'fold_scores': xgb_results['fold_scores'],\n",
    "        'params': xgb_params\n",
    "    },\n",
    "    \n",
    "    'ensemble': {\n",
    "        'oof_score': ensemble_score,\n",
    "        'weights': {\n",
    "            'lightgbm': best_weights[0],\n",
    "            'catboost': best_weights[1],\n",
    "            'xgboost': best_weights[2]\n",
    "        }\n",
    "    },\n",
    "    \n",
    "    'feature_columns': feature_columns\n",
    "}\n",
    "\n",
    "# 保存为pickle\n",
    "with open('./model/training_results_summary.pkl', 'wb') as f:\n",
    "    pickle.dump(results_summary, f)\n",
    "\n",
    "print(\"训练结果已保存至 ./model/training_results_summary.pkl\")\n",
    "\n",
    "# 保存OOF预测结果\n",
    "oof_results_df = pd.DataFrame({\n",
    "    'CUST_NO': all_features_selected['CUST_NO'].values,\n",
    "    'true_label': y.values,\n",
    "    'ensemble_pred': ensemble_labels\n",
    "})\n",
    "\n",
    "# 添加各模型的预测\n",
    "lgb_pred_labels = np.argmax(lgb_results['oof_predictions'], axis=1)\n",
    "cat_pred_labels = np.argmax(cat_results['oof_predictions'], axis=1)\n",
    "xgb_pred_labels = np.argmax(xgb_results['oof_predictions'], axis=1)\n",
    "\n",
    "oof_results_df['lgb_pred'] = lgb_pred_labels\n",
    "oof_results_df['cat_pred'] = cat_pred_labels\n",
    "oof_results_df['xgb_pred'] = xgb_pred_labels\n",
    "\n",
    "oof_results_df.to_csv('./model/oof_predictions.csv', index=False)\n",
    "print(\"OOF预测结果已保存至 ./model/oof_predictions.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cdbdbb3c",
   "metadata": {},
   "source": [
    "## 9.2 保存特征重要性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0911a0d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 合并所有模型的特征重要性\n",
    "all_importance = pd.concat([\n",
    "    lgb_results['feature_importance'].assign(model='LightGBM'),\n",
    "    cat_results['feature_importance'].assign(model='CatBoost'),\n",
    "    xgb_results['feature_importance'].assign(model='XGBoost')\n",
    "], ignore_index=True)\n",
    "\n",
    "# 保存\n",
    "all_importance.to_csv('./model/feature_importance_all.csv', index=False)\n",
    "print(\"特征重要性已保存至 ./model/feature_importance_all.csv\")\n",
    "\n",
    "# 计算综合特征重要性（加权平均）\n",
    "综合重要性 = pd.DataFrame()\n",
    "for feature in feature_columns:\n",
    "    lgb_imp = lgb_importance[lgb_importance['feature'] == feature]['importance'].values\n",
    "    cat_imp = cat_importance[cat_importance['feature'] == feature]['importance'].values\n",
    "    xgb_imp = xgb_importance[xgb_importance['feature'] == feature]['importance'].values\n",
    "    \n",
    "    lgb_val = lgb_imp[0] if len(lgb_imp) > 0 else 0\n",
    "    cat_val = cat_imp[0] if len(cat_imp) > 0 else 0\n",
    "    xgb_val = xgb_imp[0] if len(xgb_imp) > 0 else 0\n",
    "    \n",
    "    # 加权平均（使用模型权重）\n",
    "    综合值 = (lgb_val * best_weights[0] + \n",
    "             cat_val * best_weights[1] + \n",
    "             xgb_val * best_weights[2])\n",
    "    \n",
    "    综合重要性 = pd.concat([综合重要性, pd.DataFrame({\n",
    "        'feature': [feature],\n",
    "        'importance': [综合值]\n",
    "    })], ignore_index=True)\n",
    "\n",
    "综合重要性 = 综合重要性.sort_values('importance', ascending=False)\n",
    "综合重要性.to_csv('./model/feature_importance_weighted.csv', index=False)\n",
    "print(\"加权综合特征重要性已保存至 ./model/feature_importance_weighted.csv\")\n",
    "\n",
    "print(\"\\nTop 20 重要特征:\")\n",
    "print(综合重要性.head(20))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac565f4b",
   "metadata": {},
   "source": [
    "# 10. 训练总结报告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8e1d82b9",
   "metadata": {},
   "outputs": [],
   "source": [
    "print(\"=\"*100)\n",
    "print(\" \"*35 + \"模型训练总结报告\")\n",
    "print(\"=\"*100)\n",
    "\n",
    "print(f\"\\n训练时间: {time.strftime('%Y-%m-%d %H:%M:%S')}\")\n",
    "print(f\"训练样本数: {len(X):,}\")\n",
    "print(f\"特征数量: {len(feature_columns):,}\")\n",
    "print(f\"类别数量: 10\")\n",
    "\n",
    "print(f\"\\n{'='*100}\")\n",
    "print(\"模型性能对比 (Macro-F1)\")\n",
    "print(f\"{'='*100}\")\n",
    "\n",
    "performance_table = pd.DataFrame({\n",
    "    '模型': ['LightGBM', 'CatBoost', 'XGBoost', '融合模型'],\n",
    "    'OOF得分': [\n",
    "        lgb_results['oof_score'],\n",
    "        cat_results['oof_score'],\n",
    "        xgb_results['oof_score'],\n",
    "        ensemble_score\n",
    "    ],\n",
    "    '平均得分': [\n",
    "        np.mean(lgb_results['fold_scores']),\n",
    "        np.mean(cat_results['fold_scores']),\n",
    "        np.mean(xgb_results['fold_scores']),\n",
    "        ensemble_score\n",
    "    ],\n",
    "    '标准差': [\n",
    "        np.std(lgb_results['fold_scores']),\n",
    "        np.std(cat_results['fold_scores']),\n",
    "        np.std(xgb_results['fold_scores']),\n",
    "        0.0\n",
    "    ]\n",
    "})\n",
    "\n",
    "print(performance_table.to_string(index=False))\n",
    "\n",
    "print(f\"\\n{'='*100}\")\n",
    "print(\"融合模型配置\")\n",
    "print(f\"{'='*100}\")\n",
    "print(f\"LightGBM权重: {best_weights[0]:.4f}\")\n",
    "print(f\"CatBoost权重: {best_weights[1]:.4f}\")\n",
    "print(f\"XGBoost权重: {best_weights[2]:.4f}\")\n",
    "\n",
    "print(f\"\\n{'='*100}\")\n",
    "print(\"关键指标\")\n",
    "print(f\"{'='*100}\")\n",
    "print(f\"最终Macro-F1分数: {ensemble_score:.6f}\")\n",
    "\n",
    "improvement_over_best_single = ensemble_score - max(\n",
    "    lgb_results['oof_score'],\n",
    "    cat_results['oof_score'],\n",
    "    xgb_results['oof_score']\n",
    ")\n",
    "print(f\"相比最佳单模型提升: {improvement_over_best_single:.6f} ({improvement_over_best_single*100:.2f}%)\")\n",
    "\n",
    "print(f\"\\n{'='*100}\")\n",
    "print(\"文件保存位置\")\n",
    "print(f\"{'='*100}\")\n",
    "print(\"模型文件:\")\n",
    "print(\"  - ./model/lgb/        (LightGBM模型)\")\n",
    "print(\"  - ./model/cat/        (CatBoost模型)\")\n",
    "print(\"  - ./model/xgb/        (XGBoost模型)\")\n",
    "print(\"\\n结果文件:\")\n",
    "print(\"  - ./model/ensemble_config.pkl             (融合配置)\")\n",
    "print(\"  - ./model/training_results_summary.pkl    (训练结果汇总)\")\n",
    "print(\"  - ./model/oof_predictions.csv             (OOF预测结果)\")\n",
    "print(\"  - ./model/feature_importance_all.csv      (特征重要性)\")\n",
    "print(\"  - ./model/feature_importance_weighted.csv (加权特征重要性)\")\n",
    "\n",
    "print(f\"\\n{'='*100}\")\n",
    "print(\"训练完成！\")\n",
    "print(\"=\"*100)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1190363",
   "metadata": {},
   "source": [
    "# 附录：高级优化技巧\n",
    "\n",
    "## A1. 类别权重平衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "acf1bc88",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算类别权重（用于不平衡数据）\n",
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "\n",
    "class_weights = compute_class_weight(\n",
    "    class_weight='balanced',\n",
    "    classes=np.unique(y),\n",
    "    y=y\n",
    ")\n",
    "\n",
    "class_weight_dict = dict(zip(np.unique(y), class_weights))\n",
    "print(\"类别权重:\")\n",
    "for class_label, weight in class_weight_dict.items():\n",
    "    print(f\"  类别 {class_label}: {weight:.4f}\")\n",
    "\n",
    "# 示例：在LightGBM中使用类别权重\n",
    "# lgb_params_weighted = lgb_params.copy()\n",
    "# lgb_params_weighted['class_weight'] = class_weight_dict\n",
    "#\n",
    "# lgb_results_weighted = cross_validation_train(\n",
    "#     X, y,\n",
    "#     model_type='lgb',\n",
    "#     params=lgb_params_weighted,\n",
    "#     n_splits=5\n",
    "# )\n",
    "\n",
    "print(\"\\n提示: 如需使用类别权重，请取消上述代码注释并重新训练\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4cfbb20a",
   "metadata": {},
   "source": [
    "## A2. 多种子集成"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9de69675",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 使用多个随机种子训练模型，然后进行集成\n",
    "def multi_seed_ensemble(X, y, model_type='lgb', seeds=[2024, 42, 123, 1993, 2025], \n",
    "                        params=None, n_splits=5):\n",
    "    \"\"\"\n",
    "    多种子集成训练\n",
    "    \"\"\"\n",
    "    print(f\"开始多种子集成训练，种子数: {len(seeds)}\")\n",
    "    \n",
    "    all_oof_predictions = []\n",
    "    all_scores = []\n",
    "    \n",
    "    for seed in seeds:\n",
    "        print(f\"\\n训练种子: {seed}\")\n",
    "        \n",
    "        results = cross_validation_train(\n",
    "            X, y,\n",
    "            model_type=model_type,\n",
    "            n_splits=n_splits,\n",
    "            random_state=seed,\n",
    "            params=params,\n",
    "            save_model=False\n",
    "        )\n",
    "        \n",
    "        all_oof_predictions.append(results['oof_predictions'])\n",
    "        all_scores.append(results['oof_score'])\n",
    "    \n",
    "    # 平均所有种子的预测\n",
    "    avg_oof_predictions = np.mean(all_oof_predictions, axis=0)\n",
    "    avg_oof_labels = np.argmax(avg_oof_predictions, axis=1)\n",
    "    avg_score = macro_f1_score(y, avg_oof_labels)\n",
    "    \n",
    "    print(f\"\\n{'='*80}\")\n",
    "    print(\"多种子集成结果:\")\n",
    "    print(f\"各种子得分: {[f'{s:.6f}' for s in all_scores]}\")\n",
    "    print(f\"平均得分: {np.mean(all_scores):.6f} ± {np.std(all_scores):.6f}\")\n",
    "    print(f\"集成后得分: {avg_score:.6f}\")\n",
    "    print(f\"{'='*80}\")\n",
    "    \n",
    "    return avg_oof_predictions, avg_score\n",
    "\n",
    "# 示例：多种子集成（可选执行，耗时较长）\n",
    "# multi_seed_oof, multi_seed_score = multi_seed_ensemble(\n",
    "#     X, y,\n",
    "#     model_type='lgb',\n",
    "#     seeds=[2024, 42, 123, 1993, 2025],\n",
    "#     params=lgb_params,\n",
    "#     n_splits=5\n",
    "# )\n",
    "\n",
    "print(\"多种子集成函数定义完成（需要时可取消注释执行）\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "379e236d",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## 注意事项与建议\n",
    "\n",
    "1. **数据平衡**: 如果类别不平衡严重，建议使用类别权重或采样技术\n",
    "2. **参数调优**: 本notebook提供了参数优化函数，可根据计算资源选择性执行\n",
    "3. **特征工程**: 特征选择后可进一步进行特征组合和交叉特征构建\n",
    "4. **模型融合**: 尝试不同的融合策略（排名平均、幂平均等）可能获得更好效果\n",
    "5. **交叉验证**: 增加折数可以获得更稳定的评估，但会增加训练时间\n",
    "6. **早停策略**: 所有模型都使用了早停，避免过拟合\n",
    "7. **内存管理**: 在训练过程中使用了gc.collect()进行垃圾回收\n",
    "8. **随机种子**: 固定随机种子确保结果可复现\n",
    "\n",
    "## 下一步工作\n",
    "\n",
    "1. 基于验证集结果调整参数\n",
    "2. 尝试更多特征工程方法\n",
    "3. 实验不同的模型融合权重\n",
    "4. 在测试集上进行预测\n",
    "5. 分析错误案例，针对性优化\n",
    "\n",
    "---"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "starcup",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
